关于 offload-r2
offload-r2 是将媒体资源迁移到 Cloudflare R2 并更新代码引用的仓库工作流程,供开发者在验证远程文件后清理本地副本。
主要功能
- 01将资源上传到 parser-media 存储桶
- 02选择稳定且带版本的对象键
- 03验证远程文件大小和 SHA-256
- 04将本地引用替换为公开 URL
- 05验证后删除本地资源
- 06对修改的包运行定向检查
适用场景
- 01将媒体文件托管到 remotion.media
- 02在源代码中替换仓库内的资源
- 03避免资源更新后仍提供旧文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill offload-r2安装后在 Claude Code 中输入/offload-r2确认已加载。
附带文件agents/openai.yaml
详细介绍
卸载 R2 资源
将媒体托管到 https://remotion.media/,将所有适用的源引用更新为公开对象,并在验证后删除仓库本地副本。
工作流
-
使用
git worktree list --porcelain查找主工作树。优先选择位于refs/heads/main上的工作树,通常是/Users/jonathanburger/remotion。 -
选择稳定且有描述性的对象键。使用特定功能的目录前缀以避免冲突,例如
studio-close-ups/demo.mp4。替换资源时,优先使用新的版本化键,以防浏览器和 Studio 缓存提供旧字节。 -
从主工作树加载凭据,不要打印凭据:
--env-file=/Users/jonathanburger/remotion/packages/remotion-media/.env所需变量为
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。 -
使用 Bun 的 S3 兼容客户端上传到
parser-media存储桶:bun --env-file=/Users/jonathanburger/remotion/packages/remotion-media/.env -e "import {S3Client} from 'bun'; const filePath='<local-file>'; const key='<object-key>'; const client=new S3Client({accessKeyId:Bun.env.AWS_ACCESS_KEY_ID,secretAccessKey:Bun.env.AWS_SECRET_ACCESS_KEY,endpoint:'https://2fe488b3b0f4deee223aef7464784c46.r2.cloudflarestorage.com',bucket:'parser-media'}); const bytes=new Uint8Array(await Bun.file(filePath).arrayBuffer()); await client.write(key,bytes); const remote=await client.file(key).arrayBuffer(); if (remote.byteLength!==bytes.byteLength) throw new Error('Size mismatch'); console.log('uploaded',key,remote.byteLength);" -
验证公开对象,并在删除任何内容之前将其 SHA-256 哈希值与本地文件进行比较:
curl -I --fail https://remotion.media/<object-key> test "$(shasum -a 256 <local-file> | cut -d' ' -f1)" = "$(curl --fail --silent https://remotion.media/<object-key> | shasum -a 256 | cut -d' ' -f1)" -
将所有适用的源用法替换为公开 URL。不要将远程 URL 包装在
staticFile()中,因为它会拒绝http://和https://URL。 -
公开对象的哈希值匹配且源引用已改为远程 URL 后,删除本地副本。对于已跟踪文件,使用
git rm -- <local-file>;对于未跟踪或被忽略的文件,直接删除确切文件。删除过时的资源专用.gitignore条目和空资源目录。不要使用递归删除或宽泛的 glob。 -
验证本地副本已删除,并搜索受影响的软件包中是否还存在本地引用:
test ! -e <local-file> rg -n '<local-filename>|staticFile\(' <affected-package> -
对已修改的软件包运行有针对性的 lint 或样式检查。仅在收到请求时提交或推送。