diff options
| -rw-r--r-- | weed/s3api/s3api_objects_list_handlers.go | 29 | ||||
| -rw-r--r-- | weed/storage/backend/disk_file.go | 3 | ||||
| -rw-r--r-- | weed/storage/volume_vacuum.go | 3 |
3 files changed, 18 insertions, 17 deletions
diff --git a/weed/s3api/s3api_objects_list_handlers.go b/weed/s3api/s3api_objects_list_handlers.go index 975ba6201..1c55f97ac 100644 --- a/weed/s3api/s3api_objects_list_handlers.go +++ b/weed/s3api/s3api_objects_list_handlers.go @@ -254,20 +254,23 @@ func (s3a *S3ApiServer) doListFilerEntries(client filer_pb.SeaweedFilerClient, d sepIndex := strings.Index(marker, "/") if sepIndex != -1 { subPrefix, subMarker := marker[0:sepIndex], marker[sepIndex+1:] - subDir := fmt.Sprintf("%s/%s", dir[0:bucketPrefixLen-1], subPrefix) - if strings.HasPrefix(subDir, dir) { - subCounter, subIsTruncated, subNextMarker, subErr := s3a.doListFilerEntries(client, subDir, "", maxKeys, subMarker, delimiter, false, false, bucketPrefixLen, eachEntryFn) - if subErr != nil { - err = subErr - return - } - counter += subCounter - isTruncated = isTruncated || subIsTruncated - maxKeys -= subCounter - nextMarker = subNextMarker - // finished processing this sub directory - marker = subPrefix + var subDir string + if len(dir) > bucketPrefixLen && dir[bucketPrefixLen:] == subPrefix { + subDir = dir + } else { + subDir = fmt.Sprintf("%s/%s", dir, subPrefix) + } + subCounter, subIsTruncated, subNextMarker, subErr := s3a.doListFilerEntries(client, subDir, "", maxKeys, subMarker, delimiter, false, false, bucketPrefixLen, eachEntryFn) + if subErr != nil { + err = subErr + return } + counter += subCounter + isTruncated = isTruncated || subIsTruncated + maxKeys -= subCounter + nextMarker = subNextMarker + // finished processing this sub directory + marker = subPrefix } } if maxKeys <= 0 { diff --git a/weed/storage/backend/disk_file.go b/weed/storage/backend/disk_file.go index cd5207356..eced68012 100644 --- a/weed/storage/backend/disk_file.go +++ b/weed/storage/backend/disk_file.go @@ -81,5 +81,6 @@ func (df *DiskFile) Name() string { } func (df *DiskFile) Sync() error { - return df.File.Sync() + return nil + // return df.File.Sync() } diff --git a/weed/storage/volume_vacuum.go b/weed/storage/volume_vacuum.go index 1ad468958..143e6be6d 100644 --- a/weed/storage/volume_vacuum.go +++ b/weed/storage/volume_vacuum.go @@ -317,9 +317,6 @@ func (v *Volume) makeupDiff(newDatFileName, newIdxFileName, oldDatFileName, oldI if err != nil { return fmt.Errorf("cannot write indexfile %s: %v", newIdxFileName, err) } - if err := idx.Sync(); err != nil { - return fmt.Errorf("cannot sync indexfile %s: %v", newIdxFileName, err) - } } return nil |
