aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-02-03 12:34:16 -0800
committerchrislu <chris.lu@gmail.com>2022-02-03 12:34:16 -0800
commit6cf2e7d49300b96263845337aa0b64a54e21e094 (patch)
tree8dd1162c8fcbaed65dc678f7d6f695e4b6f87ebb
parenta7982bd525ce5f9a7810eb11b92c0451a5d6a7f9 (diff)
downloadseaweedfs-6cf2e7d49300b96263845337aa0b64a54e21e094.tar.xz
seaweedfs-6cf2e7d49300b96263845337aa0b64a54e21e094.zip
s3: listObjectParts return ErrNoSuchUpload if does not exist
ubuntu@prod-master-1:~$ aws --endpoint http://10.244.15.66:8333 s3api abort-multipart-upload --bucket prod-cache --key multipart-test --upload-id 5347f936-6adc-43de-8e5c-1fd137c3b2bc ubuntu@prod-master-1:~$ aws --endpoint http://10.244.15.66:8333 s3api list-parts --bucket prod-cache --key multipart-test --upload-id 5347f936-6adc-43de-8e5c-1fd137c3b2bc { "Initiator": null, "Owner": null, "StorageClass": "STANDARD" } If we abort a multipart upload, it appears that records are left behind. We should get a 404 NoSuchKey error.
-rw-r--r--weed/s3api/filer_multipart.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/weed/s3api/filer_multipart.go b/weed/s3api/filer_multipart.go
index 1795ade93..e687fba10 100644
--- a/weed/s3api/filer_multipart.go
+++ b/weed/s3api/filer_multipart.go
@@ -270,6 +270,10 @@ func (s3a *S3ApiServer) listObjectParts(input *s3.ListPartsInput) (output *ListP
glog.Errorf("listObjectParts %s %s error: %v", *input.Bucket, *input.UploadId, err)
return nil, s3err.ErrNoSuchUpload
}
+ if len(entries) == 0 {
+ glog.Errorf("listObjectParts %s %s not found", *input.Bucket, *input.UploadId)
+ return nil, s3err.ErrNoSuchUpload
+ }
output.IsTruncated = aws.Bool(!isLast)