Repository navigation
fix: delegate object downloads to browser - #256
Merged
Merged
Conversation
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.
Summary
Object downloads currently fetch the complete response in JavaScript, convert it to a Blob, and only then hand it to the browser. This prevents the browser download manager from showing transfer progress and adds unnecessary client-side buffering.
This change delegates signed object URLs directly to the browser for:
The existing signed
Content-Dispositionfilename handling is preserved. The page keeps the URL preparation loading state and reports when the browser download has been started. Bulk ZIP downloads were already browser-managed and are unchanged.Closes #247
Validation
pnpm install --frozen-lockfilepnpm type-checkpnpm lintpnpm format:checkpnpm test:run(614 tests)git diff --checkScreenshots are not included because this is a browser download behavior change with no stable in-page visual state to capture; transfer progress is rendered by the browser's download manager.