diff --git a/pkg/cloudprovider/aws/object_store.go b/pkg/cloudprovider/aws/object_store.go index 0bb074cfa..2c956f428 100644 --- a/pkg/cloudprovider/aws/object_store.go +++ b/pkg/cloudprovider/aws/object_store.go @@ -18,6 +18,7 @@ package aws import ( "io" + "sort" "strconv" "time" @@ -187,6 +188,11 @@ func (o *objectStore) ListObjects(bucket, prefix string) ([]string, error) { return nil, errors.WithStack(err) } + // ensure that returned objects are in a consistent order so that the deletion logic deletes the objects before + // the pseudo-folder prefix object for s3 providers (such as Quobyte) that return the pseudo-folder as an object. + // See https://github.com/heptio/ark/pull/999 + sort.Sort(sort.Reverse(sort.StringSlice(ret))) + return ret, nil }