• v0.7.0 a2589ee4b3

    feat: add download limit and expiry control per upload (v0.7.0)
    Some checks failed
    Release Binaries / Build and Release (.exe, amd64, windows, windows-amd64) (push) Has been cancelled
    Release Binaries / Build and Release (amd64, darwin, darwin-amd64) (push) Has been cancelled
    Release Binaries / Build and Release (amd64, linux, linux-amd64) (push) Has been cancelled
    Release Binaries / Build and Release (arm64, darwin, darwin-arm64) (push) Has been cancelled
    Release Binaries / Build and Release (arm64, linux, linux-arm64) (push) Has been cancelled

    loveuer released this 2026-03-02 09:49:37 +00:00 | 1 commits to master since this release

    Backend:

    • model/meta.go: add MaxDownloads, ExpiresAt, Downloads fields
    • opt/var.go: add X-Max-Downloads, X-Expires-In header constants; MinExpiresIn=30s, defaults
    • controller/meta.go: New() accepts maxDownloads+expiresIn; CheckAndIncrDownload() validates expiry/limit and increments counter atomically; periodic cleanup for expired files
    • handler/share.go: Fetch uses CheckAndIncrDownload (returns 410 on expired/limit exceeded); ShareNew and ShareAPIUpload read X-Max-Downloads/X-Expires-In headers

    Frontend:

    • upload.ts: UploadSettings interface; pass X-Max-Downloads and X-Expires-In headers on upload init
    • panel-left.tsx: collapsible "高级设置" panel with download count (0-999) and expiry (1-24h) controls; show settings summary on upload success card

    🤖 Generated with [Qoder][https://qoder.com]

    Downloads