aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api
diff options
context:
space:
mode:
authorhilimd <68371223+hilimd@users.noreply.github.com>2020-08-20 19:18:23 +0800
committerGitHub <noreply@github.com>2020-08-20 19:18:23 +0800
commitb0d6330cf44dbb0664f6ede0dbc82865879dcfe0 (patch)
treedcf5b0dfb71089126da5ec3a3fb8eb763a37c739 /weed/s3api
parent6a93e26fc32ce35901c96371628fd0916b639026 (diff)
parentf48567c5c62bf8c8cebf568eeb919f25a4fc4289 (diff)
downloadseaweedfs-b0d6330cf44dbb0664f6ede0dbc82865879dcfe0.tar.xz
seaweedfs-b0d6330cf44dbb0664f6ede0dbc82865879dcfe0.zip
Merge pull request #12 from chrislusf/master
sync
Diffstat (limited to 'weed/s3api')
-rw-r--r--weed/s3api/filer_multipart.go2
-rw-r--r--weed/s3api/s3api_objects_list_handlers.go11
2 files changed, 6 insertions, 7 deletions
diff --git a/weed/s3api/filer_multipart.go b/weed/s3api/filer_multipart.go
index 31ac850b1..24bbafe1d 100644
--- a/weed/s3api/filer_multipart.go
+++ b/weed/s3api/filer_multipart.go
@@ -208,7 +208,7 @@ func (s3a *S3ApiServer) listObjectParts(input *s3.ListPartsInput) (output *ListP
output.Parts = append(output.Parts, &s3.Part{
PartNumber: aws.Int64(int64(partNumber)),
LastModified: aws.Time(time.Unix(entry.Attributes.Mtime, 0).UTC()),
- Size: aws.Int64(int64(filer2.TotalSize(entry.Chunks))),
+ Size: aws.Int64(int64(filer2.FileSize(entry))),
ETag: aws.String("\"" + filer2.ETag(entry) + "\""),
})
}
diff --git a/weed/s3api/s3api_objects_list_handlers.go b/weed/s3api/s3api_objects_list_handlers.go
index 311442551..3354dd2b3 100644
--- a/weed/s3api/s3api_objects_list_handlers.go
+++ b/weed/s3api/s3api_objects_list_handlers.go
@@ -112,12 +112,12 @@ func (s3a *S3ApiServer) listFilerEntries(bucket string, originalPrefix string, m
if strings.HasPrefix(reqDir, "/") {
reqDir = reqDir[1:]
}
+ bucketPrefix := fmt.Sprintf("%s/%s/", s3a.option.BucketsPath, bucket)
+ reqDir = fmt.Sprintf("%s%s", bucketPrefix, reqDir)
if strings.HasSuffix(reqDir, "/") {
// remove trailing "/"
reqDir = reqDir[:len(reqDir)-1]
}
- bucketPrefix := fmt.Sprintf("%s/%s/", s3a.option.BucketsPath, bucket)
- reqDir = fmt.Sprintf("%s%s", bucketPrefix, reqDir)
var contents []ListEntry
var commonPrefixes []PrefixEntry
@@ -131,17 +131,16 @@ func (s3a *S3ApiServer) listFilerEntries(bucket string, originalPrefix string, m
_, isTruncated, nextMarker, doErr = s3a.doListFilerEntries(client, reqDir, prefix, maxKeys, marker, delimiter, func(dir string, entry *filer_pb.Entry) {
if entry.IsDirectory {
if delimiter == "/" {
- prefix = fmt.Sprintf("%s%s/", dir, entry.Name)
commonPrefixes = append(commonPrefixes, PrefixEntry{
- Prefix: prefix[len(bucketPrefix):],
+ Prefix: fmt.Sprintf("%s/%s/", dir, entry.Name)[len(bucketPrefix):],
})
}
} else {
contents = append(contents, ListEntry{
- Key: fmt.Sprintf("%s%s", dir[len(bucketPrefix):], entry.Name),
+ Key: fmt.Sprintf("%s/%s", dir, entry.Name)[len(bucketPrefix):],
LastModified: time.Unix(entry.Attributes.Mtime, 0).UTC(),
ETag: "\"" + filer2.ETag(entry) + "\"",
- Size: int64(filer2.TotalSize(entry.Chunks)),
+ Size: int64(filer2.FileSize(entry)),
Owner: CanonicalUser{
ID: fmt.Sprintf("%x", entry.Attributes.Uid),
DisplayName: entry.Attributes.UserName,