@@ -234,6 +234,20 @@ defmodule ExAws.S3.Impl do
234234 request ( client , :post , bucket , "/?delete" , body: body_binary , headers: % { "content-md5" => content_md5 } )
235235 end
236236
237+ def delete_all_objects ( client , bucket , objects , opts \\ [ ] ) do
238+ do_delete_all ( client , bucket , objects , opts , [ ] )
239+ end
240+
241+ defp do_delete_all ( _client , _bucket , [ ] , _opts , acc ) do
242+ { :ok , Enum . reverse ( acc ) }
243+ end
244+ defp do_delete_all ( client , bucket , objects , opts , acc ) do
245+ { objects , rest } = Enum . split ( objects , 1000 )
246+ with { :ok , result } <- delete_multiple_objects ( client , bucket , objects , opts ) do
247+ do_delete_all ( client , bucket , rest , opts , [ result | acc ] )
248+ end
249+ end
250+
237251 @ response_params [ :content_type , :content_language , :expires , :cache_control , :content_disposition , :content_encoding ]
238252 @ request_headers [ :range , :if_modified_since , :if_unmodified_since , :if_match , :if_none_match ]
239253 def get_object ( client , bucket , object , opts \\ [ ] ) do
0 commit comments