diff options
| author | chrislu <chris.lu@gmail.com> | 2022-02-03 12:34:16 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-02-03 12:34:16 -0800 |
| commit | 6cf2e7d49300b96263845337aa0b64a54e21e094 (patch) | |
| tree | 8dd1162c8fcbaed65dc678f7d6f695e4b6f87ebb | |
| parent | a7982bd525ce5f9a7810eb11b92c0451a5d6a7f9 (diff) | |
| download | seaweedfs-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.go | 4 |
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) |
