Hello,
it seems as the ProductImageUploadCommand holds on to the file reference or doesn't properly close its stream. You can see this effect if you execute this command, delete the file afterwards, leave the program and check lsof output for deleted files.
When you import large amounts of images, this leads to a lot of "locked up" space, which finally leads to "no space left on device" errors. The only way to clean those files up is to restart your application (and by that release the file handles hold by the jvm).
//Edit:
After some more testing, it only seems to happen with AsyncHttpClient, so it may very well be an issue with that and not the sdk itself.