File tree 2 files changed +25
-18
lines changed
2 files changed +25
-18
lines changed Original file line number Diff line number Diff line change @@ -878,6 +878,10 @@ mod backend_tests {
878
878
Ok ( ( ) )
879
879
}
880
880
881
+ fn test_delete_prefix_without_matches ( storage : & Storage ) -> Result < ( ) > {
882
+ storage. delete_prefix ( "prefix_without_objects" )
883
+ }
884
+
881
885
fn test_delete_prefix ( storage : & Storage ) -> Result < ( ) > {
882
886
test_deletion (
883
887
storage,
@@ -1003,6 +1007,7 @@ mod backend_tests {
1003
1007
test_get_range,
1004
1008
test_get_too_big,
1005
1009
test_delete_prefix,
1010
+ test_delete_prefix_without_matches,
1006
1011
test_delete_percent,
1007
1012
test_exists_without_remote_archive,
1008
1013
}
Original file line number Diff line number Diff line change @@ -250,25 +250,27 @@ impl<'a> StorageTransaction for S3StorageTransaction<'a> {
250
250
} )
251
251
. collect :: < Vec < _ > > ( ) ;
252
252
253
- let resp = self
254
- . s3
255
- . client
256
- . delete_objects ( DeleteObjectsRequest {
257
- bucket : self . s3 . bucket . clone ( ) ,
258
- delete : rusoto_s3:: Delete {
259
- objects : to_delete,
260
- quiet : None ,
261
- } ,
262
- ..DeleteObjectsRequest :: default ( )
263
- } )
264
- . await ?;
265
-
266
- if let Some ( errs) = resp. errors {
267
- for err in & errs {
268
- log:: error!( "error deleting file from s3: {:?}" , err) ;
253
+ if !to_delete. is_empty ( ) {
254
+ let resp = self
255
+ . s3
256
+ . client
257
+ . delete_objects ( DeleteObjectsRequest {
258
+ bucket : self . s3 . bucket . clone ( ) ,
259
+ delete : rusoto_s3:: Delete {
260
+ objects : to_delete,
261
+ quiet : None ,
262
+ } ,
263
+ ..DeleteObjectsRequest :: default ( )
264
+ } )
265
+ . await ?;
266
+
267
+ if let Some ( errs) = resp. errors {
268
+ for err in & errs {
269
+ log:: error!( "error deleting file from s3: {:?}" , err) ;
270
+ }
271
+
272
+ anyhow:: bail!( "deleting from s3 failed" ) ;
269
273
}
270
-
271
- anyhow:: bail!( "deleting from s3 failed" ) ;
272
274
}
273
275
274
276
continuation_token = list. next_continuation_token ;
You can’t perform that action at this time.
0 commit comments