We could change the behavior to use a filename containing a timestamp and only try to delete it afterwards (meaning a delete permission will be optional, but not required), however this would mean that if you don't have a delete permission, you'll get such a file there for every time you run Trains... What do you think?
But since DeleteObject is required for overwrite, and since we use overwrite as well in artifacts and model uploads, I think there's no way around it...
I actually need to be able to overwrite files, so in my case it makes sense to give the Deleteobject permission in s3. But for other cases, why not simply catch this error, display a warning to the user and store internally that delete is not possible?
Hi JitteryCoyote63 ,
The reason Trains requires delete permission was that in order to verify write permission, it places a small test file named .trains.test
in the target storage location, and deletes it immediately after.