Skip to content

docs(cryptify): document HTTP Range support and Accept-Ranges on /filedownload #85

Description

@dobby-coder

Cryptify's GET /filedownload/{uuid} endpoint now honours inbound Range headers and advertises Accept-Ranges: bytes, enabling resumable downloads in browsers. Previously Rocket 0.5's FileServer ignored Range and always returned a plain 200 with the full body, which made browsers disable the resume button on flaky multi-GB downloads.

Source PR

encryption4all/cryptify#154fix: HTTP Range support on /filedownload (merged 2026-05-13). Closes encryption4all/cryptify#153.

What needs documenting

In docs/repos/cryptify.md (and possibly docs/guide/architecture.md, which already lists /filedownload/{uuid} in its endpoint table), expand the description of GET /filedownload/{uuid} to mention:

  • Always sets Accept-Ranges: bytes.
  • With no Range header: 200 OK with Content-Length and the full body.
  • With a single Range header (bytes=N-M, bytes=N-, or bytes=-N): 206 Partial Content with Content-Range: bytes start-end/total and the requested slice.
  • Unsatisfiable or malformed ranges: 416 Range Not Satisfiable with Content-Range: bytes */total.
  • Multi-range (multipart/byteranges) is intentionally unsupported.

Also note in the CORS-related section that Range is now in the allowed_headers list so browser fetch calls can send it.

Verification

  • Cross-check src/main.rs at the merge commit of cryptify#154.
  • Run npx vitepress build docs.
  • Style: align with postguard-docs/CLAUDE.md (no em dashes, minimal bold, no banned words).

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions