The key server bundles a presign endpoint that generates presigned S3 PUT URLs. The Uploader uses this to upload encrypted segments directly from the browser to S3 — without routing bytes through your server.Documentation Index
Fetch the complete documentation index at: https://docs.blindcast.dev/llms.txt
Use this file to discover all available pages before exploring further.
Enable presign
How it works
- The uploader sends
POST /presignwith the S3 key and content type - The key server validates the JWT (if auth is enabled), then generates a presigned PUT URL
- The uploader uploads encrypted bytes directly to S3 using the presigned URL
Presign request format
Presign response
Configuration
| Variable | Default | Description |
|---|---|---|
ENABLE_PRESIGN | false | Set to true to enable |
S3_BUCKET | — | S3 bucket name (required) |
S3_REGION | us-east-1 | AWS region |
AWS_ACCESS_KEY_ID | — | AWS credentials |
AWS_SECRET_ACCESS_KEY | — | AWS credentials |
S3_ENDPOINT | — | Custom S3 endpoint (for MinIO, R2, etc.) |
S3-compatible storage
For MinIO, Cloudflare R2, or Backblaze B2, setS3_ENDPOINT:
Security
- Presign requests require the same JWT authentication as key requests (if auth is enabled)
- The key server validates that the S3 key starts with an allowed prefix (default:
content/) - Presigned URLs are short-lived (5 minutes) and single-use