fix (s3): s3 rm bug - #228

This commit is contained in:
Mickael Kerjean
2020-06-23 21:25:16 +10:00

View File

@ -241,9 +241,14 @@ func (s S3Backend) Mkdir(path string) error {
func (s S3Backend) Rm(path string) error {
p := s.path(path)
client := s3.New(s.createSession(p.bucket))
if p.bucket == "" {
return ErrNotFound
} else if strings.Contains(path, "/") == false {
_, err := client.DeleteObject(&s3.DeleteObjectInput{
Bucket: aws.String(p.bucket),
Key: aws.String(p.path),
})
return err
}
objs, err := client.ListObjects(&s3.ListObjectsInput{
@ -255,7 +260,6 @@ func (s S3Backend) Rm(path string) error {
return err
}
for _, obj := range objs.Contents {
// TODO: bug
_, err := client.DeleteObject(&s3.DeleteObjectInput{
Bucket: aws.String(p.bucket),
Key: obj.Key,
@ -265,7 +269,6 @@ func (s S3Backend) Rm(path string) error {
}
}
for _, pref := range objs.CommonPrefixes {
// TODO: bug
s.Rm("/" + p.bucket + "/" + *pref.Prefix)
_, err := client.DeleteObject(&s3.DeleteObjectInput{
Bucket: aws.String(p.bucket),
@ -275,9 +278,6 @@ func (s S3Backend) Rm(path string) error {
return err
}
}
if err != nil {
return err
}
if p.path == "" {
_, err := client.DeleteBucket(&s3.DeleteBucketInput{