S3 Storage

Local Server uses VersityGW as a local S3-compatible storage backend. WordPress uploads are stored in S3 via the S3 Uploads plugin. A sync to host service automatically syncs the S3 bucket contents back to content/uploads on the host.

S3 Commands

Use composer server s3 import-uploads to import existing files from content/uploads on the host into the S3 bucket. This is useful when setting up a project for the first time or restoring uploads from a backup.

Use composer server s3 ls to list all objects in the S3 bucket. You can optionally provide a path prefix:

composer server s3 ls uploads/

Use composer server s3 exec -- <command> to run an arbitrary AWS CLI command against the local S3 endpoint:

composer server s3 exec -- s3api list-buckets
composer server s3 exec -- s3 cp s3://s3-my-project/uploads/2026/01/image.png .

Configuration

Setting Value
Endpoint https://s3-{hostname}
Bucket s3-{project-name}
Access Key admin
Secret Key password
Region us-east-1

Troubleshooting

Files placed directly in content/uploads on the host are not automatically imported to S3. Use import-uploads to import them.

The sync to host service runs every 10 seconds. If uploads are not appearing in content/uploads, check the sync service logs:

composer server logs s3-sync-to-host