Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Offload large files (4 MB+) to R2

Ouverte
#217 4 commentaires 1 réaction 1 personne assignée Voir sur GitHub

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

enhancement

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_nodes keeps 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, and gc() 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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de cloudflare/computer

Toutes les issues de cloudflare/computer

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.