diff options
| author | chrislu <chris.lu@gmail.com> | 2025-07-21 09:46:26 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-07-21 09:46:26 -0700 |
| commit | 35262537f3afe3236943239af53fa40baced6b89 (patch) | |
| tree | e1c65d67f99e0d4c9c1b043ce3e367d2f086e689 | |
| parent | 7faf058d7bab4494e6e4e0cdd27c065ad94ece54 (diff) | |
| download | seaweedfs-35262537f3afe3236943239af53fa40baced6b89.tar.xz seaweedfs-35262537f3afe3236943239af53fa40baced6b89.zip | |
Revert "fix tests"
This reverts commit 07619950a19241f4bd51c4cf7dacfc84bfccf74e.
| -rw-r--r-- | weed/s3api/s3api_object_handlers_list.go | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/weed/s3api/s3api_object_handlers_list.go b/weed/s3api/s3api_object_handlers_list.go index a96a6fe10..0e9e58c40 100644 --- a/weed/s3api/s3api_object_handlers_list.go +++ b/weed/s3api/s3api_object_handlers_list.go @@ -150,11 +150,10 @@ func (s3a *S3ApiServer) listFilerEntries(bucket string, originalPrefix string, m // check filer err = s3a.WithFilerClient(false, func(client filer_pb.SeaweedFilerClient) error { - var lastEntryWasCommonPrefix bool - var lastCommonPrefixName string - for { empty := true + var lastEntryWasCommonPrefix bool + var lastCommonPrefixName string nextMarker, doErr = s3a.doListFilerEntries(client, reqDir, prefix, cursor, marker, delimiter, false, func(dir string, entry *filer_pb.Entry) { empty = false @@ -339,7 +338,6 @@ func (s3a *S3ApiServer) doListFilerEntries(client filer_pb.SeaweedFilerClient, d return } if cursor.maxKeys <= 0 { - cursor.isTruncated = true return } @@ -393,8 +391,18 @@ func (s3a *S3ApiServer) doListFilerEntries(client filer_pb.SeaweedFilerClient, d } } if cursor.maxKeys <= 0 { - cursor.isTruncated = true - continue + // Check if there are more entries available by trying to peek at the next one + _, nextRecvErr := stream.Recv() + if nextRecvErr == nil { + // There is another entry available, so we're truncated + cursor.isTruncated = true + } else if nextRecvErr != io.EOF { + // Some other error occurred + err = fmt.Errorf("peeking next entry: %v", nextRecvErr) + return + } + // If nextRecvErr == io.EOF, there are no more entries, so isTruncated remains false + break } entry := resp.Entry nextMarker = entry.Name @@ -464,6 +472,7 @@ func (s3a *S3ApiServer) doListFilerEntries(client filer_pb.SeaweedFilerClient, d // Create logical entries for objects that have .versions directories for _, versionsDir := range versionsDirs { if cursor.maxKeys <= 0 { + // We have versioned objects remaining but can't process them due to limit cursor.isTruncated = true break } |
