diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2026-07-08 15:01:05 -0700 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2026-07-08 15:01:05 -0700 |
| commit | 4bd4c14daff4cb8807a91305239cae1e8544f276 (patch) | |
| tree | 37de49c06efa627748f0581f6531b35f28485158 /docs/PROTOCOL.md | |
| parent | 52eb3389f074e8ac28fa1eae90847fb7536acdd8 (diff) | |
Add Cloudflare R2 file library storage backend
Implement R2FileStore, a FileStore backed by Cloudflare R2 via its
S3-compatible API, selectable with --file-store r2 and configured through
R2_* environment variables.
The store follows the MemFileStore model: a flat keyspace where directories
are derived from key prefixes, with zero-byte marker objects so empty folders
persist, and errors.ErrUnsupported for symlink/alias operations. Because R2
has no append, in-progress .incomplete uploads are routed to a local staging
directory (real O_APPEND and size-based resume) and promoted to a finished R2
object on the terminal upload-commit Rename; all other paths live in R2.
A narrow s3API seam plus an s3Uploader interface make the backend unit-testable
against an in-memory fake without a network. Adds a user setup guide at
docs/r2-file-store.md.
Diffstat (limited to 'docs/PROTOCOL.md')
0 files changed, 0 insertions, 0 deletions