skillby pollinations
r2-glacier-migration
Monitor and manage R2 to AWS Glacier Deep Archive migration. Use when checking transfer status, resuming transfers, or managing the archive migration.
Installs: 0
Used in: 1 repos
Updated: 2d ago
$
npx ai-builder add skill pollinations/r2-glacier-migrationInstalls to .claude/skills/r2-glacier-migration/
# R2 → AWS Glacier Deep Archive Migration Migrate ~42.6 TB from Cloudflare R2 to AWS S3 Glacier Deep Archive. ## Cost Savings - **R2**: ~$638/month → **Glacier**: ~$42/month - **Savings**: ~$596/month ## Buckets | Bucket | Size | Objects | Status | |--------|------|---------|--------| | pollinations-text | 16.96 TB | 1.86B | 🔄 In progress | | pollinations-images | 25.64 TB | 221M | ⏳ Pending | --- # Quick Commands ## Check Status ```bash # 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 ." ``` ## Attach to Screen (Interactive) ```bash ssh -t ninon "screen -r r2-text" # Detach: Ctrl+A, D ``` ## Resume if Crashed ```bash ssh ninon "screen -dmS r2-text bash -c '~/r2-glacier/run-text-transfer.sh; exec bash'" ``` --- # File Locations | Location | Path | Purpose | |----------|------|---------| | Skill | [scripts/r2-to-glacier-streaming.js](scripts/r2-to-glacier-streaming.js) | Main transfer script | | Skill | [scripts/package.json](scripts/package.json) | Dependencies | | ninon | `~/r2-glacier/` | Deployed script + deps | | ninon | `~/r2-glacier/run-text-transfer.sh` | Wrapper with credentials | | ninon | `~/r2-glacier/transfer-text.log` | Transfer log | | ninon | `/tmp/r2-glacier-*-checkpoint.json` | Resume checkpoint | --- # Script Usage ```bash # 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 Setup - **Bucket**: `s3://pollinations-archive` - **Region**: us-east-1 - **Storage Class**: DEEP_ARCHIVE ## Verify Archives ```bash aws s3 ls s3://pollinations-archive/ --recursive --human-readable | head -20 ``` --- # Important Notes - ⚠️ **180-day minimum** on Glacier Deep Archive - don't delete R2 until verified! - Some objects fail with "Header overflow" (very large responses) - acceptable loss - Text bucket (1.86B objects) takes several days - R2 egress is free, AWS ingress is free --- # Start Images Bucket (After Text Complete) 1. Update `~/r2-glacier/run-text-transfer.sh` on ninon: ```bash # Change bucket name node r2-to-glacier-streaming.js -b pollinations-images --batch-size 50000 --concurrency 30 ``` 2. Start new screen: ```bash ssh ninon "screen -dmS r2-images bash -c '~/r2-glacier/run-images-transfer.sh; exec bash'" ``` --- # Tracking - **Issue**: #5860 - **PR**: #5861
Quick Install
$
npx ai-builder add skill pollinations/r2-glacier-migrationDetails
- Type
- skill
- Author
- pollinations
- Slug
- pollinations/r2-glacier-migration
- Created
- 6d ago