Browse Source
Unable to upload empty files to seaweed via. multipart when length is unknown (#6729)
pull/6822/head
royatwp
2 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
5 additions and
1 deletions
-
weed/s3api/filer_multipart.go
|
|
@ -84,11 +84,15 @@ func (s3a *S3ApiServer) completeMultipartUpload(input *s3.CompleteMultipartUploa |
|
|
|
} |
|
|
|
completedPartNumbers := []int{} |
|
|
|
completedPartMap := make(map[int][]string) |
|
|
|
|
|
|
|
maxPartNo := 1 |
|
|
|
|
|
|
|
for _, part := range parts.Parts { |
|
|
|
if _, ok := completedPartMap[part.PartNumber]; !ok { |
|
|
|
completedPartNumbers = append(completedPartNumbers, part.PartNumber) |
|
|
|
} |
|
|
|
completedPartMap[part.PartNumber] = append(completedPartMap[part.PartNumber], part.ETag) |
|
|
|
maxPartNo = max(maxPartNo, part.PartNumber) |
|
|
|
} |
|
|
|
sort.Ints(completedPartNumbers) |
|
|
|
|
|
|
@ -156,7 +160,7 @@ func (s3a *S3ApiServer) completeMultipartUpload(input *s3.CompleteMultipartUploa |
|
|
|
glog.Warningf("invalid complete etag %s, partEtag %s", partETag, entryETag) |
|
|
|
stats.S3HandlerCounter.WithLabelValues(stats.ErrorCompletedEtagInvalid).Inc() |
|
|
|
} |
|
|
|
if len(entry.Chunks) == 0 { |
|
|
|
if len(entry.Chunks) == 0 && partNumber != maxPartNo { |
|
|
|
glog.Warningf("completeMultipartUpload %s empty chunks", entry.Name) |
|
|
|
stats.S3HandlerCounter.WithLabelValues(stats.ErrorCompletedPartEmpty).Inc() |
|
|
|
continue |
|
|
|