CloudSync Master - WordPress Media Offloading Plugin
About CloudSync Master
CloudSync Master is a WordPress plugin that offloads media files to cloud storage providers and serves them via CDN. It is purpose-built for speed and efficiency:
-
Ultra-small footprint - Under 1.5 MB (10-40x smaller than competitors like WP Offload Media at 23 MB or Media Cloud at 87 MB)
-
Native REST APIs - No bundled AWS/Google SDKs; uses direct HTTP calls for minimal overhead
-
10 cloud providers - S3, Cloudflare R2, Google Cloud, DigitalOcean Spaces, Backblaze B2, Wasabi, Vultr, Linode, MinIO, and any S3-compatible endpoint
-
Async queue-based uploads (PRO) - Non-blocking background processing via WP-Cron with concurrent uploads
Availability
-
Free version: Available on WordPress.org - 1 account, 10 providers, setup wizard, settings page (performance options disabled), immediate uploads via hooks (no queue/cron), competitor migration via admin UI, basic CLI (status , accounts list , sync report-only)
-
PRO version (requires activated license): Purchase at https://1teamsoftware.com/product/cloudsync-master-pro/ - unlimited accounts, async queue with background cron processing, objects browser, concurrent uploads (1-20 via admin UI, 1-10 via CLI), Google OAuth, WooCommerce/EDD signed URLs, image optimizer integrations, CSS/JS offloading, full CLI management (all commands), competitor migration via CLI, priority support
Installation
If CloudSync Master is not installed on the target WordPress site:
Install and activate the free version from WordPress.org
wp plugin install wp-cloudsync-master --activate
For PRO: download from https://1teamsoftware.com/product/cloudsync-master-pro/
then upload and activate
wp plugin install /path/to/wp-cloudsync-master-pro.zip --activate
CLI Command Overview
All commands follow: wp cloudsync <command> [<subcommand>] [--flags]
Command Description Version
status
Show sync status across all accounts Free (basic) / PRO (with queue info)
sync
Scan media library for unsynced files Free (report only) / PRO (queues files)
accounts list
List configured accounts Free
accounts add/update/delete/activate/test/info
Full account management PRO
queue
Manage upload queue (status/list/clear/process) PRO
settings
Manage plugin settings (list/get/set/reset) PRO
integrations
Manage plugin integrations (list/enable/disable/set) PRO
objects
Manage synced object records (list/reupload/delete) PRO
license
Manage PRO license (status/activate/deactivate) PRO (always available, even before activation)
config
Show configuration sources and generate wp-config.php snippets PRO
migrate
Detect and import from competitor plugins PRO
PRO CLI commands require the PRO plugin with an activated license. Without activation, only free commands and license (activate/deactivate/status) are available.
For the complete CLI reference with all flags and examples, read references/cli_reference.md .
Common Workflows
Initial Setup (from scratch)
1. Activate PRO license (always available in PRO, even before first activation)
wp cloudsync license activate XXXX-XXXX-XXXX-XXXX
2. Add cloud storage account
wp cloudsync accounts add
--provider=cloudflare_r2
--name="Production R2"
--bucket=my-media
--access-key-id=$R2_ACCESS_KEY
--secret-access-key=$R2_SECRET_KEY
--region=auto
--api-endpoint=https://$R2_ACCOUNT_ID.r2.cloudflarestorage.com
--custom-domain=cdn.example.com
--activate
2b. Test the connection
wp cloudsync accounts test --account=<account-id>
3. Configure upload behavior
wp cloudsync settings set createObjectOnFileUpload yes wp cloudsync settings set rewriteFileUrlWithObjectUrl yes wp cloudsync settings set uploadBatchSize 25 wp cloudsync settings set uploadConcurrency 3
4. Sync existing media library
wp cloudsync sync --batch-size=100
5. Verify
wp cloudsync status --format=json
Provider-Specific Account Setup
Cloudflare R2 (zero egress fees):
wp cloudsync accounts add
--provider=cloudflare_r2 --name="R2 Storage" --bucket=my-bucket
--access-key-id=KEY --secret-access-key=SECRET
--region=auto --api-endpoint=https://ACCOUNT_ID.r2.cloudflarestorage.com
--custom-domain=cdn.example.com --activate
wp cloudsync accounts test --account=<account-id>
AWS S3:
wp cloudsync accounts add
--provider=s3 --name="AWS Media" --bucket=my-s3-bucket
--access-key-id=KEY --secret-access-key=SECRET
--region=us-east-1 --activate
wp cloudsync accounts test --account=<account-id>
Google Cloud Storage (service account):
wp cloudsync accounts add
--provider=google --name="Google Media" --bucket=my-gcs-bucket
--auth-type=service_account --key-file=/path/to/service-account.json
--activate
wp cloudsync accounts test --account=<account-id>
DigitalOcean Spaces:
wp cloudsync accounts add
--provider=digitalocean --name="DO Spaces" --bucket=my-space
--access-key-id=KEY --secret-access-key=SECRET
--region=nyc3 --api-endpoint=https://nyc3.digitaloceanspaces.com
--activate
wp cloudsync accounts test --account=<account-id>
Monitoring and Health Checks
wp cloudsync status --format=json # Quick status wp cloudsync queue status # Check queue backlog wp cloudsync queue process # Force-process stuck queue wp cloudsync objects list --per-page=10 # List recently synced objects wp cloudsync license status # Verify license
Migration from Competitor Plugin
wp cloudsync migrate detect # Detect installed competitors wp cloudsync migrate import --from=wp-offload-media # Import settings wp cloudsync accounts test --account=<imported-id> # Verify imported account
Hardened Configuration (wp-config.php)
wp cloudsync config generate --account=<id> # Generate define() snippet wp cloudsync config show # Show all config sources
Configuration priority: environment variables > wp-config.php constants > database.
Key Settings Reference
Setting Type Default Description
createObjectOnFileUpload
bool no Upload to cloud on media upload
rewriteFileUrlWithObjectUrl
bool no Replace local URLs with cloud URLs
deleteObjectOnFileDelete
bool no Delete from cloud when local file deleted
deleteFileAfterObjectCreated
bool no Remove local file after cloud upload
createObjectsForExistingFiles
bool no Queue existing media library for upload
uploadBatchSize
int 10 Files per upload batch (1-100)
uploadConcurrency
int 1 Concurrent uploads (1-10 via CLI, 1-20 via admin UI)
enableSignedDownloads
bool no Generate signed URLs for downloads
signedUrlExpirySeconds
int 3600 Signed URL lifetime in seconds (120-604800)
fallbackToLocalOnMissingRemote
bool yes Serve local file if cloud file missing
Run wp cloudsync settings list for the complete list with min/max constraints.
Supported Providers
Provider ID Auth Notes
Amazon S3 s3
Access Key + Secret Industry standard
Cloudflare R2 cloudflare_r2
Access Key + Secret Zero egress fees
Google Cloud Storage google
Service Account JSON or OAuth Enterprise-grade
DigitalOcean Spaces digitalocean
Access Key + Secret S3-compatible
Backblaze B2 backblaze
Access Key + Secret Cost-effective
Wasabi wasabi
Access Key + Secret No egress fees
Vultr Object Storage vultr
Access Key + Secret S3-compatible
Linode Object Storage linode
Access Key + Secret S3-compatible
MinIO minio
Access Key + Secret Self-hosted
Custom S3-Compatible s3_compatible
Access Key + Secret Any S3 endpoint
Supported Competitor Migrations
Plugin Migration ID
WP Offload Media wp-offload-media
Media Cloud media-cloud
Media Cloud Sync media-cloud-sync
WP Stateless wp-stateless
Environment Variable Configuration
S3-compatible account (individual fields)
ONETEAMSOFTWARE_CLOUDSYNC_MASTER_S3_ACCESS_KEY_ID=key ONETEAMSOFTWARE_CLOUDSYNC_MASTER_S3_SECRET_ACCESS_KEY=secret ONETEAMSOFTWARE_CLOUDSYNC_MASTER_S3_BUCKET=my-bucket ONETEAMSOFTWARE_CLOUDSYNC_MASTER_S3_ENDPOINT=https://endpoint.com ONETEAMSOFTWARE_CLOUDSYNC_MASTER_S3_REGION=auto ONETEAMSOFTWARE_CLOUDSYNC_MASTER_S3_PATH_PREFIX=wp-content/uploads
Google Cloud Storage account (individual fields)
ONETEAMSOFTWARE_CLOUDSYNC_MASTER_GCS_SERVICE_ACCOUNT_KEY='{"type":"service_account",...}' ONETEAMSOFTWARE_CLOUDSYNC_MASTER_GCS_BUCKET=my-gcs-bucket ONETEAMSOFTWARE_CLOUDSYNC_MASTER_GCS_PATH_PREFIX=wp-content/uploads
Full account definitions (JSON array, supports multiple accounts)
ONETEAMSOFTWARE_CLOUDSYNC_MASTER_ACCOUNTS='[{"provider":"cloudflare_r2","bucketName":"my-bucket",...}]'
License key
ONETEAMSOFTWARE_CLOUDSYNC_MASTER_LICENSE_KEY=your-license-key
Plugin settings (JSON)
ONETEAMSOFTWARE_CLOUDSYNC_MASTER_SETTINGS='{"uploadBatchSize":25}'
Disable UI account management (external-only mode)
ONETEAMSOFTWARE_CLOUDSYNC_MASTER_DISABLE_ACCOUNT_MANAGEMENT=true
Resources
references/
Detailed CLI reference with every command, subcommand, flag, and example:
- references/cli_reference.md
- Complete wp cloudsync CLI reference