Repository navigation
Conversation
Coverage Report for CI Build 37679183507Coverage decreased (-0.07%) to 84.872%Details
Uncovered ChangesNo uncovered changes found. Coverage Regressions17 previously-covered lines in 1 file lost coverage.
Coverage Stats💛 - Coveralls |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
Bug fix. Fixes #1486.
What is the current behavior?
ListMultipartUploadsrejects valid object-key/upload-ID markers withInvalid Parameter continuation token, because it expects private base64 tokens. Truncated responses also wrap both next markers in those tokens, contrary to S3's marker contract.What is the new behavior?
Pass raw keys and upload IDs to the existing database pagination path. Return the last listed key/upload ID as next markers, URL-encoding key response fields when
EncodingType: 'url'is requested. Remove the two now-unused multipart-only token helpers.Regression coverage exercises raw marker input, a two-page same-key listing, URL-encoded keys containing Unicode/colon/slash/space, echoed markers, and the final untruncated page. The existing colon-preservation test now uses an S3 key marker directly.
Additional context
Validation on upstream
bc38cb97:npm run test:unit -- --maxWorkers=2 src/storage/protocols/s3/s3-handler.test.ts src/storage/database/pg.test.ts src/http/routes/s3/router.test.ts).npm run test:unit -- --maxWorkers=2).npm run build,npm run lint(Biome and Prettier), andgit diff --checkpassed.Compatibility: previously saved private base64 multipart markers must be discarded and listings restarted. Markers now follow the S3 API contract; object-list continuation tokens are unaffected. No database or dependency changes.
Related merged #1346 addresses multipart ordering and #1384 addresses response shape; this fixes the distinct wire-marker format. Searches of issues/PRs/comments, discussions, commits, and local history found no blocking overlap.