Skip to content

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

@dobby-coder

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions