Offload large files (4 MB+) to R2
维护者通常 1 天内回复
@aron-cf 已经在做这个了。
开始于 2026年10月8日。
评估
这个 Issue 还没有评估数据。
描述
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?
- 主要语言
- TypeScript
- 星标
- 9.5k
- 派生
- 552
- 平均合并
- 1 天 21 小时
- 30 天内合并 PR
- 42
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
cloudflare/computer 的其他 Issue
-
Feature: add workspace.inspect() and the workspace_summary tool可能已有人在做 @aron-cf 于 1 天前认领。 未关闭enhancement
cloudflare/computer#226 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Sync planning scans the full pending change set before yielding; repeated Durable Object CPU-limit failures可能已有人在做 @aron-cf 于 2 天前认领。 未关闭bug
cloudflare/computer#225 · 已指派 1 人 ·
维护者通常 1 天内回复
-
enhancement
难度 4/5 3-5 天 新手友好度 30/100
cloudflare/computer#224 · 5 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
Always run the "next" computerd workflow on push to the `release` branch可能已有人在做 @aron-cf 于 3 天前认领。 未关闭bug
cloudflare/computer#222 · 2 条评论 · 1 个 reaction · 已指派 1 人 ·
维护者通常 1 天内回复
-
Make just-bash and acorn optional peer dependencies, pulled in only by the backend that needs them未关闭enhancement
难度 3/5 1-2 天 新手友好度 45/100
cloudflare/computer#220 · 3 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
查看 cloudflare/computer 的全部 Issue
相似的 Issue
-
status: needs-triage
难度 2/5 1-3 小时 新手友好度 83/100
a2ui-project/a2ui#3158 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
hemilabs/ui-monorepo#2475 ·
维护者通常 1 天内回复
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
难度 1/5 1 小时以内 新手友好度 82/100
lingdojo/kana-dojo#32279 · 1 条评论 · 5 个 reaction ·
维护者通常 1 天内回复
-
code-quality refactoring
难度 2/5 1-3 小时 新手友好度 77/100
github/gh-aw-firewall#9879 ·
维护者通常 1 天内回复
-
[Bug]: Arrow-key cursor movement in combined diff view doesn't scroll to keep the cursor visible未关闭os:macos
难度 2/5 1-3 小时 新手友好度 64/100
维护者通常 1 天内回复