See #20 for a discussion. The current implementation calls the super, which performs a preliminary check using has_objects, which in turn calls list_objects which will be very expensive for larger repositories. If the interface of the AbstractRepositoryBackend allows it, we should simply call boto3.delete_objects which will delete all files that exist and return an error for keys that didn't exist.
See #20 for a discussion. The current implementation calls the super, which performs a preliminary check using
has_objects
, which in turn callslist_objects
which will be very expensive for larger repositories. If the interface of theAbstractRepositoryBackend
allows it, we should simply callboto3.delete_objects
which will delete all files that exist and return an error for keys that didn't exist.