Offload large files (4 MB+) to R2
I maintainer di solito rispondono entro 1 giorno
@aron-cf ci sta già lavorando.
Dal 8/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
vfs_* tables in Durable Object SQLite hold all file content today, so a workspace is capped at the Durable Object storage limit (about 10 GB). R2 mounts are read-only, which means a writable file can't live outside that cap.
@cloudflare/shell in cloudflare/agents had a hybrid model. It kept small files inline in SQLite and moved files over a size threshold to R2. We're deprecating Shell in favour of Computer, and some agents (media, datasets, build outputs) will need large writable files.
Proposal
- Add an optional R2 bucket to
WorkspaceOptions, along with a size threshold. The default would be 4 MB. - When a write reaches the threshold, the content goes to R2.
vfs_nodeskeeps the metadata and a pointer to the R2 key. The key is scoped by workspace, using the session id or DO id. - Reads through
workspace.fs, the worker backends, and the container sync path resolve the pointer without the caller knowing about it. A read of an R2-backed file returns a stream, so the bytes never pass through SQLite. rm, overwrite, andgc()delete the R2 object they replace.- Without a bucket, behaviour stays as it is today.
Open questions
- Should content-addressed blob dedup extend to R2 objects, or should R2 hold one object per file?
- Container sync could pull large R2-backed files on demand instead of copying them into the container's in-memory VFS. Is that in scope here?
- Lingua principale
- TypeScript
- Stelle
- 9.5k
- Fork
- 552
- Merge medio
- 2g 4h
- PR unite (30g)
- 49
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cloudflare/computer
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
cloudflare/computer#224 · 5 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Always run the "next" computerd workflow on push to the `release` branchForse già presa @aron-cf l’ha presa 1 giorno fa. Apertabug
cloudflare/computer#222 · 2 commenti · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Make just-bash and acorn optional peer dependencies, pulled in only by the backend that needs themApertaenhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
cloudflare/computer#220 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Workspace namespaces: more than one Workspace per Durable Object storageForse già presa @aron-cf l’ha presa 2 giorni fa. Apertaenhancement
cloudflare/computer#219 · 1 commento · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
git: host-held credentials for model-driven clone, fetch, pull and pushForse già presa @aron-cf l’ha presa 2 giorni fa. Apertaenhancement
cloudflare/computer#218 · 3 commenti · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cloudflare/computer
Issue simili
-
effort:S priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
cameri/nostream#811 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
dam-agents/dam#4562 ·
I maintainer di solito rispondono entro 1 giorno
-
bug p3 triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
bug javascript P2-medium python release:v3.1
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
adrirubio/claude-deck#546 ·
I maintainer di solito rispondono entro 1 giorno