Chuyển tới nội dung chính

S3 Object Storage (Optional)

Offload tenant media uploads to S3-compatible cloud storage instead of storing them on your server's local disk.

When to Use S3

  • Disk space: Your server has limited storage and tenants upload lots of media
  • CDN delivery: Serve images/files from a global CDN for faster load times
  • Scalability: Decouple storage from compute — scale independently
  • Backups: Cloud storage providers handle redundancy and durability

Supported Providers

Any S3-compatible API works:

ProviderEndpoint ExampleNotes
Cloudflare R2https://ACCOUNT_ID.r2.cloudflarestorage.comNo egress fees. Region: auto
AWS S3https://s3.us-east-1.amazonaws.comMost mature. Many regions.
DigitalOcean Spaceshttps://nyc3.digitaloceanspaces.comSimple pricing. Built-in CDN.
MinIOhttps://minio.yourdomain.comSelf-hosted. Enable path-style.
Backblaze B2https://s3.us-west-002.backblazeb2.comLow cost. S3-compatible API.

Configuration

Navigate to Tenancy → Pro Settings → Object Storage (/wp-admin/admin.php?page=grabwp-tenancy-pro-settings).

  1. Set Storage Driver to S3
  2. Fill in:
FieldDescriptionExample
S3 Endpoint URLFull endpoint URL for your providerhttps://ACCOUNT.r2.cloudflarestorage.com
Bucket NameName of the bucket you createdgrabwp-uploads
RegionAWS region or auto for R2auto
Access Key IDAPI key ID
Secret Access KeyAPI secret (stored encrypted)
CDN URL (optional)Public URL prefix for serving fileshttps://cdn.yoursaas.com
Path-Style EndpointEnable for MinIO and some providersCheck if needed
  1. Click Test Connection to verify credentials and bucket access
  2. Click Save Settings

Provider Setup Guides

Cloudflare R2

  1. Log in to Cloudflare dashboard
  2. Go to R2 Object Storage → Create Bucket
  3. Name it (e.g., grabwp-uploads)
  4. Go to R2 → Manage R2 API Tokens → Create API token
  5. Set permissions: Object Read & Write
  6. Copy the Access Key ID and Secret Access Key
  7. Endpoint: https://<ACCOUNT_ID>.r2.cloudflarestorage.com
  8. Region: auto

Cloudflare R2 docs: R2 documentation

AWS S3

  1. Create a bucket in the AWS S3 Console
  2. Create an IAM user with AmazonS3FullAccess policy (or scoped to your bucket)
  3. Generate Access Key under the IAM user's security credentials
  4. Use the regional endpoint for your bucket

AWS S3 docs: Getting started with S3

DigitalOcean Spaces

  1. Create a Space in DigitalOcean
  2. Go to API → Spaces Keys → Generate New Key
  3. Endpoint: https://<REGION>.digitaloceanspaces.com

DO Spaces docs: Spaces documentation

Bulk Migration

After configuring S3, migrate existing tenant uploads:

  1. In Pro Settings → Object Storage, click Migrate All Tenants to S3
  2. Wait for the migration to complete — this uploads all local tenant files to S3
  3. Verify a few tenant sites to ensure images load correctly

To migrate back to local storage: click Migrate All Tenants to Local.

Note: Migration can take a while depending on the amount of data. The page shows progress and results.

CDN Configuration

If you set a CDN URL, files are served from that URL instead of using pre-signed S3 URLs.

For Cloudflare R2:

  1. Go to R2 → your bucket → Settings → Public Access
  2. Enable public access or add a custom domain
  3. Enter the public URL as CDN URL in Pro Settings

Without a CDN URL, files are served using time-limited pre-signed URLs (secure but slightly slower).


Next: WooCommerce Billing