Apologies for the lazy version. Let me elaborate a bit more :)
From what I read, the blocker last time was a lack of a clear path in how to handle a "file already exists" type of error. [1]
In my case, the need for a 'copy' method arose from a two step upload flow: first step is to upload the file to a temporary location, second step is to confirm the upload and move the file to its permanent location (defined by some model's field.) If the 'copy' interface is provided at the storage level, it will help abstract away the specific storage implementation, and for some storage classes, it could perfectly raise an exception (if such behavior makes no sense for that class).
As of now, every time I need to 'move' a file from one location to another, while still using Django provided APIs, I have to go through the currently provided open/save API, which makes the length of the file go through the Django processes (again), which I consider to be a needless burden (perhaps I'm wrong here.)
The middle ground alternative is to subclass each storage I want to use and provide a 'copy' implementation for those. This is okay. Now, can we reconsider lifting that up to the Django codebase itself?
Hope this sheds some light in the request.
Thanks!
References: