diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-12-09 16:47:34 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-12-09 16:47:34 -0800 |
| commit | 02a160c3fd9b01f20d84ef529a915dbf14c132ad (patch) | |
| tree | d6b1f7bcde39c7770a9b748bdcc6bff74820ba71 | |
| parent | a9c619c270927456787a638856e315289f9005b7 (diff) | |
| download | seaweedfs-02a160c3fd9b01f20d84ef529a915dbf14c132ad.tar.xz seaweedfs-02a160c3fd9b01f20d84ef529a915dbf14c132ad.zip | |
s3: recursively iterate all sub folders
fix https://github.com/chrislusf/seaweedfs/issues/1656
| -rw-r--r-- | weed/s3api/s3api_objects_list_handlers.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/weed/s3api/s3api_objects_list_handlers.go b/weed/s3api/s3api_objects_list_handlers.go index 5d63f1039..40583f478 100644 --- a/weed/s3api/s3api_objects_list_handlers.go +++ b/weed/s3api/s3api_objects_list_handlers.go @@ -197,11 +197,12 @@ func (s3a *S3ApiServer) doListFilerEntries(client filer_pb.SeaweedFilerClient, d sepIndex := strings.Index(marker, "/") subDir, subMarker := marker[0:sepIndex], marker[sepIndex+1:] // println("doListFilerEntries dir", dir+"/"+subDir, "subMarker", subMarker, "maxKeys", maxKeys) - subCounter, _, subNextMarker, subErr := s3a.doListFilerEntries(client, dir+"/"+subDir, "", maxKeys, subMarker, delimiter, eachEntryFn) + subCounter, subIsTruncated, subNextMarker, subErr := s3a.doListFilerEntries(client, dir+"/"+subDir, "", maxKeys, subMarker, delimiter, eachEntryFn) if subErr != nil { err = subErr return } + isTruncated = isTruncated || subIsTruncated maxKeys -= subCounter nextMarker = subDir + "/" + subNextMarker counter += subCounter |
