Merge pull request #2982 from kmlebedev/issues/2981

avoid empty listMultipartUploads response
This commit is contained in:
Chris Lu 2022-04-27 17:21:44 -07:00 committed by GitHub
commit 4e97b6146a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,6 +6,7 @@ import (
"fmt"
"github.com/chrislusf/seaweedfs/weed/s3api/s3err"
"golang.org/x/exp/slices"
"math"
"path/filepath"
"sort"
"strconv"
@ -242,13 +243,13 @@ func (s3a *S3ApiServer) listMultipartUploads(input *s3.ListMultipartUploadsInput
Prefix: input.Prefix,
}
entries, isLast, err := s3a.list(s3a.genUploadsFolder(*input.Bucket), "", *input.UploadIdMarker, false, uint32(*input.MaxUploads))
entries, _, err := s3a.list(s3a.genUploadsFolder(*input.Bucket), "", *input.UploadIdMarker, false, math.MaxInt32)
if err != nil {
glog.Errorf("listMultipartUploads %s error: %v", *input.Bucket, err)
return
}
output.IsTruncated = aws.Bool(!isLast)
uploadsCount := int64(0)
for _, entry := range entries {
if entry.Extended != nil {
key := string(entry.Extended["key"])
@ -262,9 +263,12 @@ func (s3a *S3ApiServer) listMultipartUploads(input *s3.ListMultipartUploadsInput
Key: objectKey(aws.String(key)),
UploadId: aws.String(entry.Name),
})
if !isLast {
output.NextUploadIdMarker = aws.String(entry.Name)
}
uploadsCount += 1
}
if uploadsCount >= *input.MaxUploads {
output.IsTruncated = aws.Bool(true)
output.NextUploadIdMarker = aws.String(entry.Name)
break
}
}