
RR Media Offload for S3 (powered by WPtoCloud) automatically uploads every file from your WordPress media library to an S3 or S3-compatible bucket.
Images, videos and all generated thumbnails are stored in S3 and can be served directly from cloud storage or via a CDN such as CloudFront.
This reduces disk usage, improves performance and allows your site to scale more easily.
Setup is simple and takes just a few minutes with the built-in step-by-step wizard.
Features
- Automatic upload of new media files to Amazon S3
- Upload of all thumbnails and srcset variants
- Support for images, videos and all WordPress media types
- URL rewriting to serve files from S3 or CDN
- Compatible with CloudFront and custom CDN domains
- Optional local file deletion after upload
- Step-by-step setup wizard (bucket, IAM, CDN)
- Status dashboard with upload metrics and S3 health
- Works with private S3 buckets (using CDN)
- Compatible with multisite installations
- Translation-ready (English, Spanish, French, Portuguese, Catalan)
External services
This plugin does NOT load remote files from third-party servers.
All plugin assets (JavaScript, CSS, images) are included locally within the plugin directory. The plugin does not call external CDNs for its own functionality.
This plugin provides a service to connect YOUR OWN Amazon S3 account
When you configure the plugin with your AWS credentials, it connects to:
- S3 / S3-compatible storage – to upload and store your media files in your own bucket
- CDN (optional) – to serve content via a CDN such as Amazon CloudFront or another compatible CDN distribution
The plugin also works with other services that implement the S3 API (S3‑compatible object storage). If you prefer to use an alternative provider, configure the plugin with that provider’s endpoint and credentials. Common compatible providers include:
- MinIO (self-hosted)
- DigitalOcean Spaces
- Wasabi
- Backblaze B2 (S3 API)
- Linode Object Storage
- Scaleway Objects
- Ceph (RADOS Gateway)
- IBM Cloud Object Storage (S3-compatible mode)
- Oracle Cloud (S3-compatible gateway; may need adjustments)
- Cloudian, DreamObjects, Exoscale
Notes for S3‑compatible providers:
- You may need to set a custom
endpoint(for examplehttps://nyc3.digitaloceanspaces.com). - Some providers require
use_path_style_endpoint => trueor specificsignature_version(usuallyv4). - Verify CORS, ACL/public-read behavior and large multipart upload limits with your provider.
- If the plugin UI does not expose an endpoint field, you can add the endpoint in the plugin settings or I can patch the plugin to add an “Custom S3 endpoint” option.
Provider-specific instructions
Below are short, provider-specific notes to help you configure the plugin when using S3‑compatible object storage.
DigitalOcean Spaces
- Example endpoint: https://nyc3.digitaloceanspaces.com (replace nyc3 with your region)
- Create a Space in the DigitalOcean control panel and generate Access Key / Secret Key under API -> Spaces keys.
- Use the above endpoint in the plugin
Endpointfield and leave Region to any (the SDK will use endpoint). - CORS: allow GET, HEAD, PUT, POST and set Origin to your site if needed.
- Public objects: set Space to public or use signed URLs via your CDN.
MinIO (self-hosted)
- Example endpoint: https://minio.example.com:9000
- MinIO commonly requires
use_path_style_endpoint => true— enable “Forzar path-style” in plugin settings. - Ensure TLS is configured for production and that bucket names follow DNS rules.
- Use MinIO client (
mc) to create buckets and test uploads:mc alias set myminio https://minio.example.com ACCESSKEY SECRETmc mb myminio/my-bucket
Wasabi
– Example endpoint: https://s3.us-west-1.wasabisys.com (region-specific)
- Use the provider endpoint in the plugin and do not enable path-style unless instructed by Wasabi.
- Check Wasabi docs for bucket policies and CORS configuration.
Backblaze B2 (S3 Compatible)
- Backblaze S3 endpoints are region-specific, e.g.
https://s3.us-west-002.backblazeb2.com. - Use the endpoint and your S3-style keys; test with the plugin’s “Probar conexión” button.
Linode Object Storage
- Example endpoint: https://us-east-1.linodeobjects.com
- Use the endpoint in settings; Linode supports virtual-host style by default, no path-style needed usually.
Custom / Other S3-compatible providers
- If your provider exposes an S3-compatible API, you will usually need:
endpoint(required)access keyandsecret key- optionally
use_path_style_endpoint => truefor older or self-hosted gateways
- Common issues: signature version mismatch (ensure
v4), CORS restrictions, or provider-specific limits for multipart uploads.
If you hit issues, copy the provider endpoint and keys into the plugin settings and use “Probar conexión”. If the test fails, enable path-style and retry, or share the error message for further help.
What data is sent:
- Media files uploaded by your WordPress site (images, videos, thumbnails)
- API requests using YOUR AWS credentials to manage YOUR bucket
- All connections are made to YOUR configured AWS resources only
AWS Account Requirement:
You must create your own AWS account and configure your own S3 bucket and optional CloudFront distribution. The plugin does not provide these services—it merely connects WordPress to the AWS services YOU configure.
Credentials Security:
- Your AWS credentials are stored encrypted in your WordPress database
- Credentials are used ONLY to communicate with your own AWS account
- No data is sent to third-party servers or the plugin developer
URLs shown in the plugin admin are informational links only:
The setup wizard displays clickable links to help you open the correct AWS Console pages:
https://s3.console.aws.amazon.com/s3/home– Opens your AWS S3 console (for bucket creation)https://console.aws.amazon.com/iam/home#/users– Opens your IAM console (for creating access keys)https://console.aws.amazon.com/cloudfront/home– Opens your CloudFront console (optional CDN setup)
These are standard AWS console URLs provided as user guidance. They are NOT external dependencies loaded by the plugin runtime.
Example placeholder shown in setup wizard:
The wizard shows an example CloudFront URL format like https://d1ab2cde.cloudfront.net as a visual reference. This is a placeholder example only—it is not a real endpoint. The plugin only uses the CDN URL YOU configure with YOUR OWN CloudFront domain.
More information:
- AWS Service Terms: https://aws.amazon.com/service-terms/
- AWS Privacy Notice: https://aws.amazon.com/privacy/
Upgrade to WPtoCloud Pro
Unlock advanced features with WPtoCloud Pro:
- Bulk media migration to Amazon S3
- Advanced automation tools
- WooCommerce media cleanup
- Detailed reporting and monitoring
- Priority support
Get WPtoCloud Pro:
https://www.wptocloud.com
Screenshots


