davekilleen / rclone
Upload, sync, and manage files across cloud storage providers using rclone. Use when uploading files (images, videos, documents) 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.
0
SKILL.md3.8 KB
rclone File Transfer Skill
Setup Check (Always Run First)
Before any rclone operation, verify installation and configuration:
# Check if rclone is installed
command -v rclone >/dev/null 2>&1 && echo "rclone installed: $(rclone version | head -1)" || 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:
# 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 # FedoraIf NO remotes are configured
Walk the user through interactive configuration:
rclone configCommon provider setup quick reference:
| Provider | Type | Key Settings |
|---|---|---|
| AWS S3 | s3 | accesskeyid, secretaccesskey, region |
| Cloudflare R2 | s3 | accesskeyid, secretaccesskey, endpoint (account_id.r2.cloudflarestorage.com) |
| Backblaze B2 | b2 | account (keyID), key (applicationKey) |
| DigitalOcean Spaces | s3 | accesskeyid, secretaccesskey, endpoint (region.digitaloceanspaces.com) |
| Google Drive | drive | OAuth flow (opens browser) |
| Dropbox | dropbox | OAuth flow (opens browser) |
Example: Configure Cloudflare R2
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=privateExample: Configure AWS S3
rclone config create aws s3 \
provider=AWS \
access_key_id=YOUR_ACCESS_KEY \
secret_access_key=YOUR_SECRET_KEY \
region=us-east-1Common Operations
Upload single file
rclone copy /path/to/file.mp4 remote:bucket/path/ --progressUpload directory
rclone copy /path/to/folder remote:bucket/folder/ --progressSync directory (mirror, deletes removed files)
rclone sync /local/path remote:bucket/path/ --progressList remote contents
rclone ls remote:bucket/
rclone lsd remote:bucket/ # directories onlyCheck what would be transferred (dry run)
rclone copy /path remote:bucket/ --dry-runUseful 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:
# 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=5Verify Upload
# Check file exists and matches
rclone check /local/file remote:bucket/file
# Get file info
rclone lsl remote:bucket/path/to/fileTroubleshooting
# Test connection
rclone lsd remote:
# Debug connection issues
rclone lsd remote: -vv
# Check config
rclone config show remote