skills/1teamsoftware/skills/wp-cloudsync-master

wp-cloudsync-master

SKILL.md

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
Weekly Installs
5
First Seen
Feb 21, 2026
Installed on
opencode5
gemini-cli5
claude-code5
github-copilot5
codex5
amp5