跳转到内容

R2

用户上传图片、附件、导出文件优先使用 R2,数据库只存对象标识和状态。公开下载、软件包、PDF、备份也适合 R2,但要看读取次数。图床、小文件工具、导出物这类独立项目,用 R2 可以控制服务器和对象存储成本。

原图存储 + 缩略图处理时,原图进 R2,转换看 Images 或 Worker。D1 里想存大段内容、图片、二进制时,改成 D1 存索引,R2 存对象。前端构建产物放 Static Assets / Pages;视频产品的完整播放体验看 Stream;高频小对象读写要先设计缓存和索引。

成本主要看存储容量、写入类操作和读取类操作。小项目的文件、图片、备份可以先跑起来,但长期堆文件要做生命周期和清理。上传、写入、列举、生命周期等偏修改操作会增长;读取、下载、查看对象信息等偏读取操作也会增长,公开下载热点尤其要看。

R2 的优势是出站带宽不收费,但读写操作和存储仍要算。R2 兼容 S3 API,对象 key、元数据和访问层要分开设计。低频访问存储只给冷数据用,热文件优先 Standard。

数据库只存引用:对象标识、归属、大小、状态和权限。对象 key 要稳定,不把业务逻辑写死在随机路径里,迁移或换桶时影响更小。用户上传需要经过鉴权和签名。

下载要区分公开和私有。公开文件可走自定义域名;私有文件用签名 URL 或 Worker 鉴权。大文件由 Worker 做鉴权和路由,尽量流式处理。公开下载和图片访问要考虑 CDN 缓存。低频访问存储用于冷数据,热文件用 Standard。