Feature Proposal: Short Signed Token URL for Object Access #2132
rikurunico
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Currently, RustFS provides temporary object access using AWS Signature V4 compatible presigned URLs, similar to Amazon S3. While this ensures compatibility with existing tooling, the resulting URLs are extremely long and include multiple query parameters:
X-Amz-AlgorithmX-Amz-CredentialX-Amz-DateX-Amz-ExpiresX-Amz-Signatureetc.
Example:
These URLs work correctly but introduce several practical limitations:
Very long URLs are inconvenient for frontend usage.
Hard to use as canonical URLs in applications.
Poor compatibility with some CDN caching strategies.
Difficult to embed in QR codes or messaging platforms.
Not ergonomic for systems that store file references in databases.
Many modern storage systems provide an additional mechanism using short signed tokens.
Proposal
Introduce an optional Short Signed Token URL mechanism.
Example public URL:
or
Where the token encodes:
object path
expiration timestamp
optional permissions
signature
Example structure:
Server verification flow:
Receive request
/s/{token}Decode token
Validate signature
Validate expiration
Resolve object path
Serve object
Advantages
Much shorter URLs
Easier integration with front-end applications
Better CDN compatibility
Cleaner database storage (store token instead of full presigned URL)
Still cryptographically secure
Additional Features (Optional)
configurable token length
optional IP binding
optional permission scope (read / download)
revocation via key rotation
configurable token TTL
Comparison
Feature | Presigned URL | Short Token -- | -- | -- Length | Very long | Short S3 Compatible | Yes | No CDN Friendly | Moderate | High Usability | Low | HighQuestion
Would maintainers be open to adding a short signed token access mode alongside the existing S3-compatible presigned URL system?
This would not break compatibility but would significantly improve usability for applications that rely heavily on object URLs.
Beta Was this translation helpful? Give feedback.
All reactions