diff options
Diffstat (limited to 'weed')
| -rw-r--r-- | weed/Makefile | 4 | ||||
| -rw-r--r-- | weed/s3api/s3api_objects_list_handlers.go | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/weed/Makefile b/weed/Makefile index 896067df0..ec95aeacb 100644 --- a/weed/Makefile +++ b/weed/Makefile @@ -13,3 +13,7 @@ clean: debug_mount: go build -gcflags="all=-N -l" dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec weed -- mount -dir=~/tmp/mm + +debug_server: + go build -gcflags="all=-N -l" + dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec weed -- server -dir=/Volumes/mobile_disk/99 -filer -volume.port=8343 -s3 -volume.max=0 diff --git a/weed/s3api/s3api_objects_list_handlers.go b/weed/s3api/s3api_objects_list_handlers.go index 46d5b90c7..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,14 +131,13 @@ 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.FileSize(entry)), |
