offload-r2 用于把 Remotion 仓库中的媒体资源迁移到 https://remotion.media/ 托管,并把相关源码引用改为公网对象地址,验证通过后移除仓库本地副本。
用途:将仓库内媒体资产上传至 remotion.media 背后的 Cloudflare R2 桶(parser-media),让源码引用远程 URL,并在校验后清理本地文件与过时配置,减少仓库体积。
主要能力与步骤:先用 git worktree list --porcelain 找到主工作树,优先 refs/heads/main 所在工作树;选择稳定且描述性的对象键,必要时用功能前缀避免冲突,替换资源时优先使用新版本键以绕过浏览器与 Studio 缓存。凭据从主工作树的 packages/remotion-media/.env 加载,需 AWS_ACCESS_KEY_ID 与 AWS_SECRET_ACCESS_KEY,且不打印。使用 Bun 的 S3 兼容客户端上传,命令需保留原样:bun --env-file=/Users/jonathanburger/remotion/packages/remotion-media/.env -e "import {S3Client} from 'bun'; ..."。上传后用 curl -I --fail 校验公网对象,并用 shasum -a 256 比对本地与远程哈希。哈希一致且源码引用全部改为远程后,用 git rm -- <local-file> 删除已跟踪文件,或直接删除确切的未跟踪/忽略文件;移除过时的资源级 .gitignore 条目与空目录,不使用递归删除或宽泛通配。最后用 test ! -e 与 rg -n '<local-filename>|staticFile(' 确认本地副本已消失且无残留引用,并对受影响包运行针对性 lint 或风格检查。
适用场景:Remotion 仓库内媒体资源上云、替换已有素材并更新引用、清理本地资产目录。
限制:远程 URL 不能包在 staticFile() 中,因为它拒绝 http:// 与 https:// URL;需具备对应 R2 凭据;提交或推送仅在明确要求时进行。平台、收费、版本等信息资料未提供。