关于 r2-glacier-migration
用于将对象从 Cloudflare R2 迁移到 AWS S3 Glacier Deep Archive 的技能,提供流式传输命令、状态检查和基于检查点的续传说明,适合大型存储桶迁移。
主要功能
- 01流式传输 R2 对象至 Glacier Deep Archive
- 02设置批次大小与并发数
- 03查看传输状态和日志
- 04从检查点恢复中断的传输
适用场景
- 01将 R2 存储桶内容归档到 AWS S3
- 02检查长时间迁移的进度
- 03中断后继续对象传输
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pollinations/ pollinations --skill r2-glacier-migration安装后在 Claude Code 中输入/r2-glacier-migration确认已加载。
附带文件scripts/package.jsonscripts/r2-to-glacier-streaming.js
详细介绍
R2 → AWS Glacier Deep Archive 迁移
将约 42.6 TB 的数据从 Cloudflare R2 迁移到 AWS S3 Glacier Deep Archive。
节省成本
- R2:约 $638/月 → Glacier:约 $42/月
- 节省:约 $596/月
存储桶
| 存储桶 | 大小 | 对象数 | 状态 |
|---|---|---|---|
| pollinations-text | 16.96 TB | 1.86B | 🔄 进行中 |
| pollinations-images | 25.64 TB | 221M | ⏳ 待处理 |
快速命令
查看状态
# Is transfer running?
ssh ninon "screen -ls"
# View recent logs
ssh ninon "tail -50 ~/r2-glacier/transfer-text.log"
# Check checkpoint
ssh ninon "cat /tmp/r2-glacier-pollinations-text-checkpoint.json | jq ."
连接到 Screen(交互式)
ssh -t ninon "screen -r r2-text"
# Detach: Ctrl+A, D
崩溃后恢复
ssh ninon "screen -dmS r2-text bash -c '~/r2-glacier/run-text-transfer.sh; exec bash'"
文件位置
| 位置 | 路径 | 用途 |
|---|---|---|
| 技能 | scripts/r2-to-glacier-streaming.js | 主传输脚本 |
| 技能 | scripts/package.json | 依赖项 |
| ninon | ~/r2-glacier/ | 已部署的脚本和依赖项 |
| ninon | ~/r2-glacier/run-text-transfer.sh | 含凭据的包装脚本 |
| ninon | ~/r2-glacier/transfer-text.log | 传输日志 |
| ninon | /tmp/r2-glacier-*-checkpoint.json | 恢复检查点 |
脚本用法
# Test (small batch)
node r2-to-glacier-streaming.js -b pollinations-text --batch-size 100 --max-batches 1
# Full transfer
node r2-to-glacier-streaming.js -b pollinations-text --batch-size 50000 --concurrency 30
# Resume after interruption
node r2-to-glacier-streaming.js -b pollinations-text --resume
# Dry run (count only)
node r2-to-glacier-streaming.js -b pollinations-text --dry-run
AWS 设置
- 存储桶:
s3://pollinations-archive - 区域:us-east-1
- 存储类别:DEEP_ARCHIVE
验证归档
aws s3 ls s3://pollinations-archive/ --recursive --human-readable | head -20
重要说明
- ⚠️ Glacier Deep Archive 的最低存储期限为 180 天——验证完成前不要删除 R2!
- 部分对象会因“Header overflow”(响应过大)而失败——可接受此损失
- 文本存储桶(1.86B 个对象)需要数天时间
- R2 出站流量免费,AWS 入站流量免费
启动图像存储桶(文本存储桶完成后)
-
在 ninon 上更新
~/r2-glacier/run-text-transfer.sh:# Change bucket name node r2-to-glacier-streaming.js -b pollinations-images --batch-size 50000 --concurrency 30 -
启动新的 screen:
ssh ninon "screen -dmS r2-images bash -c '~/r2-glacier/run-images-transfer.sh; exec bash'"
跟踪
- Issue:#5860
- PR:#5861
评论
支持 Markdown