Batch uploads now use top-level URLs (e.g., /my-photos instead of
/b/abc123). Users can name their batch slug or let it auto-generate.
Slug field dynamically shows / prefix for batches, /f/ for single files.
Added slug validation with live feedback and reserved slug protection.
Old /b/ URLs redirect permanently for backward compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Password-protected batch uploads now require a single password entry
at /b/{id}/auth. The batch cookie (auth_b_{id}) also grants access
to individual file pages (/f/{id}), so users don't re-enter password
per file.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Batch page now shows files as a thumbnail grid (images render as
cover-fit thumbnails, other types show icons). Added /b/{id}/dl
endpoint that streams all batch files as a zip archive.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Multi-file uploads now generate a batch ID, grouping files together.
A single batch URL (e.g. /b/Ab3xKz9q) shows all files with previews
and download links. Schema migrates automatically for existing DBs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use presigned R2 URLs with native HTML elements instead of generic
icons for all previewable file types on the download page.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Uploaders can optionally set a custom path via the "slug" field.
Slug appears before the file in multipart form so it's available
before streaming begins. Validated: alphanumeric + hyphens/dots/
underscores, 1-64 chars, checked for uniqueness.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Images show actual thumbnail from R2 (presigned inline URL)
- Video/audio/PDF show type-specific icons
- Use flexbox gap for consistent spacing (no overlap)
- Move filename into card as h2, remove top-level h1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GET /f/{id} now shows a file info page with metadata and action buttons
instead of redirecting directly. Previewable files (images, video, audio,
text, PDF) get a "View" button (inline disposition). All files get a
"Download" button. Actual redirects moved to /f/{id}/dl and /f/{id}/view.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Go service streaming file uploads to Cloudflare R2 with SQLite metadata.
Features: drag-and-drop web UI, presigned URL downloads, password protection,
expiry with cleanup, rate limiting, CLI tool, Infisical secret injection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>