@@ -194,8 +194,16 @@ func (p *S3Path) RemoveAllVersions(ctx context.Context) error {
194194 if err != nil {
195195 return fmt .Errorf ("error listing all versions of file %s: %v" , p , err )
196196 }
197- versions = append (versions , page .Versions ... )
198- deleteMarkers = append (deleteMarkers , page .DeleteMarkers ... )
197+ for _ , version := range page .Versions {
198+ if aws .ToString (version .Key ) == p .key {
199+ versions = append (versions , version )
200+ }
201+ }
202+ for _ , marker := range page .DeleteMarkers {
203+ if aws .ToString (marker .Key ) == p .key {
204+ deleteMarkers = append (deleteMarkers , marker )
205+ }
206+ }
199207 }
200208
201209 if len (versions ) == 0 && len (deleteMarkers ) == 0 {
@@ -237,10 +245,13 @@ func (p *S3Path) RemoveAllVersions(ctx context.Context) error {
237245
238246 klog .V (8 ).Infof ("removing %d file/marker versions\n " , len (request .Delete .Objects ))
239247
240- _ , err = client .DeleteObjects (ctx , request )
248+ deleteResult , err : = client .DeleteObjects (ctx , request )
241249 if err != nil {
242250 return fmt .Errorf ("error removing %d file/marker versions: %v" , len (request .Delete .Objects ), err )
243251 }
252+ if len (deleteResult .Errors ) > 0 {
253+ return fmt .Errorf ("error removing file/marker versions: %v" , deleteResult .Errors )
254+ }
244255 }
245256
246257 return nil
0 commit comments