Skip to content

fix: encode extended download filenames - #239

Merged
cxymds merged 1 commit into
mainfrom
fix/rfc8187-content-disposition
Sep 20, 2026
Merged

cxymds merged 1 commit into
mainfrom
fix/rfc8187-content-disposition

Conversation

@cxymds

@cxymds cxymds commented Sep 20, 2026

Copy link
Copy Markdown
Member

Description

Correct RFC 8187 encoding for extended download filenames. encodeURIComponent leaves ', (, ) and * unescaped, but those characters are not valid in the filename* value. Encode them so Unicode object names containing these characters are preserved by browsers instead of falling back to the sanitized ASCII filename.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Code refactoring
  • Performance improvement
  • Test improvements
  • Security fix

Testing

  • Unit tests added/updated
  • Manual testing completed
git diff --check
pnpm type-check
pnpm lint
pnpm format:check
pnpm test:run

All checks pass; the test suite reports 600 passing tests.

Checklist

  • Code follows the project's style guidelines
  • Self-review completed
  • TypeScript types are properly defined
  • All commit messages are in English (Conventional Commits)
  • All existing tests pass
  • No new dependencies added, or they are justified

Related Issues

Related to rustfs/rustfs#8027 and #238.

Screenshots (if applicable)

N/A: this change affects HTTP header encoding only; no visual UI is introduced.

Additional Notes

This is a follow-up to #238 and is intentionally limited to the RFC 8187 filename encoding boundary.

@cxymds
cxymds force-pushed the fix/rfc8187-content-disposition branch from 5d92ffa to 384cbe1 Compare September 20, 2026 09:57
@cxymds
cxymds merged commit 62f97ed into main Sep 20, 2026
10 checks passed
@cxymds
cxymds deleted the fix/rfc8187-content-disposition branch September 20, 2026 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant