@cloudflare/sandbox 中的 Files 类可在 Worker 与正在运行的 sandbox 之间移动文件,并提供常见的文件系统操作。更多信息请参阅 在 sandbox 内外移动文件。
每个沙盒名称都映射到一个 Durable Object,后者会在需要时启动 Linux 实例。停止实例会删除其磁盘上的文件。更多信息请参阅沙盒生命周期。
你可以通过多种方式保留沙盒中的文件,从根文件系统快照到保存在 R2 中的单个目录:
| 目标 | 指南 | 取舍 |
|---|---|---|
| 在后续 session 中继续 Agent 工作区 | 使用 snapshot 保存并恢复 sandbox | 保存根文件系统,但不包括已挂载的目录 |
| 无需显式保存调用即可保留工作区 | 自动保存 sandbox | 与 snapshot 相同,并在 Durable Object 中增加 alarm |
| 跨镜像保留项目,或超过 30 天 | 将目录备份到 R2 | 保存一个目录,且 Durable Object 存储每条备份记录 |
| 与其他系统共享任务输入和输出 | 挂载 R2 bucket | 重命名、锁和权限的行为与本地磁盘不同 |
snapshot 不包含挂载的目录,因此 sandbox 可以同时使用两者。例如,编程 Agent 可以将仓库和依赖保存在 snapshot 中,并将结果写入挂载的 bucket,供其他 Worker 读取。更多信息请参阅 Sandbox 生命周期。