Date: 2026-08-13 08:24 Summary: Speed up R2 publish with S3 PutObject path and --changed-only delta uploads.
[question] 需要
[try to solve] Implemented remote R2 publish acceleration:
- S3 direct upload (default): when
R2_ACCOUNT_ID+R2_ACCESS_KEY_ID+R2_SECRET_ACCESS_KEYare set, use@aws-sdk/client-s3for in-process concurrent PutObject (default concurrency 32); without credentials, fall back to wrangler (slow, with warn). Force with--s3/--wrangler. - Delta:
npm run upload:r2:changed(--changed-only). MetaschemaVersion: 2includesfileHashes; compare R2 meta → local.cache; missing old hashes means full upload. Still rewrites_meta/pages-build.json. - Docs:
ops/worker-r2-ops.md§3.1;ops/README.md;cloudflare-workflow.mdc.
Usage:
export R2_ACCOUNT_ID='...'
export R2_ACCESS_KEY_ID='...'
export R2_SECRET_ACCESS_KEY='...'
npm run upload:r2 # full S3 upload
npm run upload:r2:changed # changed files only
[actions]
- Added
scripts/lib/r2-s3-client.mjs - Updated
scripts/lib/pages-build-meta.mjs,scripts/upload-r2-pages.mjs - Added
@aws-sdk/client-s3(devDependency);upload:r2:changedscript - Updated
ops/worker-r2-ops.md,ops/README.md,.cursor/rules/cloudflare-workflow.mdc