rclone · git:20260222.eea05d3 · 2026-02-22 · sha256 98249faf0eeee642
rclone git:20260222.eea05d3B
Immutable. This exact content is served forever at /api/v1/blob/98249faf0eeee642.
--- name: rclone description: This skill should be used when uploading, syncing, or managing files across cloud storage providers using rclone. It handles transfers to S3, Cloudflare R2, Backblaze B2, Google Drive, Dropbox, or any S3-compatible storage. Triggers on "upload to S3", "sync to cloud", "rclone", "backup files", "upload video/image to bucket", or requests to transfer files to remote storage. --- # rclone File Transfer Skill ## Setup Check (Always Run First) Before any rclone operation, verify installation and configuration: ```bash # Check if rclone is installed command -v rclone >/dev/null 2>&1 && rclone version || echo "NOT INSTALLED" # List configured remotes rclone listremotes 2>/dev/null || echo "NO REMOTES CONFIGURED" ``` ### If rclone is NOT installed Guide the user to install: ```bash # macOS brew install rclone # Linux (script install) curl https://rclone.org/install.sh | sudo bash # Or via package manager sudo apt install rclone # Debian/Ubuntu sudo dnf install rclone # Fedora ``` ### If NO remotes are configured Walk the user through interactive configuration: ```bash rclone config ``` **Common provider setup quick reference:** | Provider | Type | Key Settings | |----------|------|--------------| | AWS S3 | `s3` | access_key_id, secret_access_key, region | | Cloudflare R2 | `s3` | access_key_id, secret_access_key, endpoint (account_id.r2.cloudflarestorage.com) | | Backblaze B2 | `b2` | account (keyID), key (applicationKey) | | DigitalOcean Spaces | `s3` | access_key_id, secret_access_key, endpoint (region.digitaloceanspaces.com) | | Google Drive | `drive` | OAuth flow (opens browser) | | Dropbox | `dropbox` | OAuth flow (opens browser) | **Example: Configure Cloudflare R2** ```bash rclone config create r2 s3 \ provider=Cloudflare \ access_key_id=YOUR_ACCESS_KEY \ secret_access_key=YOUR_SECRET_KEY \ endpoint=ACCOUNT_ID.r2.cloudflarestorage.com \ acl=private ``` **Example: Configure AWS S3** ```bash rclone config create aws s3 \ provider=AWS \ access_key_id=YOUR_ACCESS_KEY \ secret_access_key=YOUR_SECRET_KEY \ region=us-east-1 ``` ## Common Operations ### Upload single file ```bash rclone copy /path/to/file.mp4 remote:bucket/path/ --progress ``` ### Upload directory ```bash rclone copy /path/to/folder remote:bucket/folder/ --progress ``` ### Sync directory (mirror, deletes removed files) ```bash rclone sync /local/path remote:bucket/path/ --progress ``` ### List remote contents ```bash rclone ls remote:bucket/ rclone lsd remote:bucket/ # directories only ``` ### Check what would be transferred (dry run) ```bash rclone copy /path remote:bucket/ --dry-run ``` ## Useful Flags | Flag | Purpose | |------|---------| | `--progress` | Show transfer progress | | `--dry-run` | Preview without transferring | | `-v` | Verbose output | | `--transfers=N` | Parallel transfers (default 4) | | `--bwlimit=RATE` | Bandwidth limit (e.g., `10M`) | | `--checksum` | Compare by checksum, not size/time | | `--exclude="*.tmp"` | Exclude patterns | | `--include="*.mp4"` | Include only matching | | `--min-size=SIZE` | Skip files smaller than SIZE | | `--max-size=SIZE` | Skip files larger than SIZE | ## Large File Uploads For videos and large files, use chunked uploads: ```bash # S3 multipart upload (automatic for >200MB) rclone copy large_video.mp4 remote:bucket/ --s3-chunk-size=64M --progress # Resume interrupted transfers rclone copy /path remote:bucket/ --progress --retries=5 ``` ## Verify Upload ```bash # Check file exists and matches rclone check /local/file remote:bucket/file # Get file info rclone lsl remote:bucket/path/to/file ``` ## Troubleshooting ```bash # Test connection rclone lsd remote: # Debug connection issues rclone lsd remote: -vv # Check config rclone config show remote ```