SuperAPI AI 工具集

pinme-r2

设计与创作

查看项目

更新于 10-16 05:49

技能介绍

用途:在 PinMe 部署的 Cloudflare Worker 中使用项目级 R2 对象存储,处理文件、图片、附件、媒体与导出等按 key 寻址的对象。PinMe 会为每个 Worker 注入 env.R2,无需自建凭证、选择桶名或修改生成的 Wrangler 配置。

主要能力:流式上传(request.body 直接传入 env.R2.put)、流式下载(支持 Range 与条件请求)、HEAD 读取元数据、删除对象(支持批量最多 1000 个 key)、按所有者前缀分页列表。R2 存文件本体,D1 存可搜索的业务元数据(归属、关系、状态、审计),文件只把 key 与元数据写入 D1。

使用方式:声明 Env 接口中的 R2: R2Bucket 等绑定;每个上传、下载、元数据、删除、列表路由都按“认证→授权→校验大小与媒体策略→生成或规范化作用域 key→调用 env.R2→返回净化响应”的顺序执行。对象 key 由服务端控制,使用所有者前缀下的不透明 ID,禁止客户端提交完整 key。上传需 Content-Length 预检并校验实际存储大小,下载校验单个 Range 头,列表用所有者前缀并依据 page.truncated 分页。

适用场景:需要为 PinMe Worker 增加文件存储能力的项目,尤其是图片上传、附件管理、媒体分发与导出文件。

限制:R2 与 D1 不共享事务,需用 pending→ready 状态迁移与补偿策略;流式上传不绕过账户计划的请求体上限,超大文件或需断点续传时才用 multipart,且需自行处理鉴权与状态;本地开发不要编辑生成的 wrangler.toml,mock 仅用于逻辑测试;错误响应不得暴露桶名、凭证或内部 key。