diff options
| author | chrislu <chris.lu@gmail.com> | 2024-07-08 10:20:07 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-07-08 10:20:09 -0700 |
| commit | f618121e63f6897e88e4c7f6b5df1f6c8f98f105 (patch) | |
| tree | 1b44d4bf3fcecc6222a9801c94fa2de5b2252443 | |
| parent | e8c50e65b39f60a0e4b1d61bf32b125a224b8f70 (diff) | |
| download | seaweedfs-f618121e63f6897e88e4c7f6b5df1f6c8f98f105.tar.xz seaweedfs-f618121e63f6897e88e4c7f6b5df1f6c8f98f105.zip | |
Fix S3 deletion in deep folders, and names with empty spaces
fix https://github.com/seaweedfs/seaweedfs/issues/5748
| -rw-r--r-- | weed/s3api/s3api_object_handlers_delete.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/weed/s3api/s3api_object_handlers_delete.go b/weed/s3api/s3api_object_handlers_delete.go index 580578593..de05081b7 100644 --- a/weed/s3api/s3api_object_handlers_delete.go +++ b/weed/s3api/s3api_object_handlers_delete.go @@ -27,11 +27,12 @@ func (s3a *S3ApiServer) DeleteObjectHandler(w http.ResponseWriter, r *http.Reque bucket, object := s3_constants.GetBucketAndObject(r) glog.V(3).Infof("DeleteObjectHandler %s %s", bucket, object) - object = urlPathEscape(removeDuplicateSlashes(object)) + target := util.FullPath(fmt.Sprintf("%s/%s%s", s3a.option.BucketsPath, bucket, object)) + dir, name := target.DirAndName() s3a.WithFilerClient(false, func(client filer_pb.SeaweedFilerClient) error { - err := doDeleteEntry(client, s3a.option.BucketsPath+"/"+bucket, object, true, false) + err := doDeleteEntry(client, dir, name, true, false) if err != nil { // skip deletion error, usually the file is not found return nil |
