Offload large files (4 MB+) to R2
Maintainer antworten meist innerhalb von 1 Tag
@aron-cf arbeitet bereits daran.
Seit 08.10.2026.
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
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?
- Vorherrschende Sprache
- TypeScript
- Sterne
- 9.7k
- Forks
- 577
- Ø Merge
- 1 T. 15 Std.
- Gemergte PRs (30 T.)
- 79
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus cloudflare/computer
-
worker-shell: redirected `cat` output and heredocs store non-ASCII bytes double-encoded (é becomes c3 83 c2 a9)Evtl. vergeben @aron-cf hat das vor 5 Tagen übernommen. Offenbug priority: high
cloudflare/computer#286 · 1 Kommentar · 1 Reaktion · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Export one file helper over workspace.fsEvtl. vergeben @aron-cf hat das vor 13 Tagen übernommen. Offenenhancement
cloudflare/computer#261 · 1 Kommentar · 1 Reaktion · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
dofs: resolving a directory scans its children as the directory growsEvtl. vergeben @aron-cf hat das vor 20 Tagen übernommen. Offenbug
cloudflare/computer#236 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
cloudflare/computer#224 · 5 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Always run the "next" computerd workflow on push to the `release` branchEvtl. vergeben @aron-cf hat das vor 24 Tagen übernommen. Offenbug
cloudflare/computer#222 · 2 Kommentare · 1 Reaktion · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in cloudflare/computer
Ähnliche Issues
-
needs-area
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Azure/typespec-azure#5936 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 72/100
vercel-labs/scriptc#2910 ·
Maintainer antworten meist innerhalb von 1 Tag
-
automation missing-model model-sync provider:fireworks-ai
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
anomalyco/models.dev#12458 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag