Skip to content

oliwebd/r2sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“¦ R2Sync

A CLI tool for backup and upload files from/to a Cloudflare R2 bucket with concurrency, streaming, and low memory usage.

πŸš€ Features

  • Download or backup all files from an R2 bucket quickly with parallel processing
  • Upload all files to an R2 bucket with cache-control headers
  • Stream files to avoid excessive memory usage
  • Controlled concurrency for optimal speed and stability

βš™οΈ Installation

If you want to use the r2sync command directly from your terminal in any project directory (which is typical for a CLI utility), use the global install flag:

  1. Installation:
npm install -g r2sync
  1. Run setup to configure:
r2sync setup

πŸ“‚ Project Structure

.
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ cli.js             # CLI command handler
β”‚   β”œβ”€β”€ setup.js           # Setup wizard
β”‚   β”œβ”€β”€ config.js          # Config loader
β”‚   β”œβ”€β”€ download-r2.js     # Script to download from R2
β”‚   β”œβ”€β”€ upload-r2.js       # Script to upload to R2
β”œβ”€β”€ package.json
└── README.md

πŸ›  Usage

General Usage [Examples]

r2sync download --local ./r2/to-backup-folder
r2sync upload --local ./r2/from-upload-folder

Commands:

  • upload β€” Upload files from local to R2
  • download β€” Download files from R2 to local

Examples:

r2sync upload
r2sync upload --local ./static/storage
r2sync upload --remote r2-folder --local ./my-local-folder
npx r2sync download
npx r2sync download --local ./static/storage
npx r2sync download --remote r2-folder --local ./my-local-folder

πŸ“‚ Default Local Storage

If --local is not provided, defaults to:

r2-backup/BUCKET_NAME_YYYY-MM-DD

⚑ Performance

  • Uses p-limit for controlled concurrency
  • Streams files for low memory usage
  • Configurable concurrency speed

πŸ“¦ Dependencies

  • @aws-sdk/client-s3
  • fs-extra
  • mime
  • p-limit

πŸ“ License

ISC License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published