aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/s3api/s3api_objects_list_handlers.go29
-rw-r--r--weed/storage/backend/disk_file.go3
-rw-r--r--weed/storage/volume_vacuum.go3
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