Skip to content

WP Cloud Files

Stores and serves the WordPress media library from S3-compatible object storage, with direct browser uploads and document thumbnails.

WordPressActiveGPL-3.0-or-later
View on GitHub (opens in a new tab)
Platform

WordPress

License
GPL-3.0-or-later
Status
Active

Media libraries grow until they crowd the server, slow down backups, and make it hard to scale or move a site. WP Cloud Files moves uploads to S3-compatible storage such as AWS S3, Cloudflare R2, DigitalOcean Spaces, or MinIO, and serves them from there. Your server stays small, and the media survives a rebuild. Configuration is a handful of constants in wp-config.php.

Features

  • Automatic offload. WordPress resizes images and generates WebP or AVIF variants as usual, then the files go to your bucket and URLs are rewritten to its public address.

  • Direct uploads. An opt-in mode sends files straight from the browser to S3 with short-lived presigned URLs, bypassing proxy upload limits such as Cloudflare's 100 MB cap. Image sizes are generated afterward in the background.

  • Document thumbnails for PDF, Word, Excel, and PowerPoint files, shown in the media library like image thumbnails.

  • Migration. A WP-CLI command moves an existing library to S3 in batches, with options to keep local copies or force re-upload.

  • Safe development copies. Outside production, the plugin can run read-only with no keys, serving existing media without writing to the production bucket.

  • Self-updating from GitHub Releases.

Getting started

Download the release zip from GitHub Releases, upload it as a plugin, and define your bucket constants in wp-config.php. The README lists every constant and the bucket CORS rule direct uploads need. Requires PHP 8.3.

Related projects

All open-source projects

Replaces WordPress logins with single sign-on through an OIDC provider or an identity-aware proxy, configured entirely in wp-config.php.

Routes all WordPress email through the Cloudflare Email Sending API and keeps a searchable log of every message, with no settings screen.

Need help with it?

Need this implemented? Our Websites team can move your media to object storage as part of hosting.