Offload large files (4 MB+) to R2
Les mainteneurs répondent en général sous 1 jour
@aron-cf y travaille déjà.
Depuis le 8/10/2026.
Évaluation
Cette issue n'a pas encore été évaluée.
Description
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?
- Langage dominant
- TypeScript
- Étoiles
- 9.7k
- Forks
- 577
- Merge moyen
- 1 j 15 h
- PR mergées (30 j)
- 79
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cloudflare/computer
-
worker-shell: redirected `cat` output and heredocs store non-ASCII bytes double-encoded (é becomes c3 83 c2 a9)Peut-être pris @aron-cf l’a pris aujourd’hui. Ouvertebug priority: high
cloudflare/computer#286 · 1 commentaire · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Export one file helper over workspace.fsPeut-être pris @aron-cf l’a pris il y a 8 jours. Ouverteenhancement
cloudflare/computer#261 · 1 commentaire · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
dofs: resolving a directory scans its children as the directory growsPeut-être pris @aron-cf l’a pris il y a 15 jours. Ouvertebug
cloudflare/computer#236 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
cloudflare/computer#224 · 5 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Always run the "next" computerd workflow on push to the `release` branchPeut-être pris @aron-cf l’a pris il y a 20 jours. Ouvertebug
cloudflare/computer#222 · 2 commentaires · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de cloudflare/computer
Issues similaires
-
area:plugins area:security area:skills bug has repro
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
anthropics/claude-code#105911 ·
Les mainteneurs répondent en général sous 1 jour
-
openspec-apply-change skill: when blocked, may select a ready artifact unrelated to missingArtifactsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Fission-AI/OpenSpec#2165 ·
Les mainteneurs répondent en général sous 1 jour
-
🐞 bug 🧐 unconfirmed
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Tencent/tdesign-vue-next#7032 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
gnosis/gnosis_vpn#661 ·
Les mainteneurs répondent en général sous 1 jour
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)Ouvertetriage:bug-verified
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
Les mainteneurs répondent en général sous 1 jour