Uploads Relay makes local WordPress development easier and lightweight by automatically proxying missing upload files from a remote server. No need to download gigabytes of media just to work on a site locally.
Features
- Proxy Missing Files — Automatically serve missing upload files from a remote server.
- Always Remote Mode — Rewrite all upload URLs to point to the remote server for the fastest setup.
- Optional Local Caching — Cache proxied files locally so subsequent requests are served from disk.
- Security First — Path traversal protection, host allowlisting, and file extension validation.
- Environment Guard — Only active when WordPress environment type is set to “local”.
- Zero Configuration on Remote — No changes needed on the remote/production server.
How It Works
- A visitor or developer requests an upload file (e.g., an image in a post).
- If the file does not exist locally, WordPress returns a 404.
- The plugin intercepts the 404, fetches the file from the configured remote server, and serves it.
- Optionally, the file is cached locally for faster subsequent loads.
Use Cases
- Local development of large WordPress sites without syncing media.
- Staging environments with partial media libraries.
- Quick site clones for debugging or testing.
Requirements
- WordPress 6.0 or higher
- PHP 7.4 or higher
WP_ENVIRONMENT_TYPE must be set to local (the plugin will not function in production environments)
External Service
This plugin sends HTTP requests to a remote server that you configure yourself in order to fetch upload files missing from your local environment. No requests are made until you explicitly enter a remote URL and enable the proxy in Settings → Uploads Relay. By enabling the plugin and providing a remote URL, you consent to these requests being made.
- What is sent: HTTP GET requests for specific media file paths (e.g.,
/wp-content/uploads/2024/01/photo.jpg).
- When it is sent: Only when a requested upload file does not exist locally, the proxy is enabled, and the environment type is
local.
- Where it is sent: Only to the remote server URL you have configured. This is typically your own production or staging server.
- No data is collected, stored, or transmitted to any third-party service, analytics provider, or external server other than the one you configure.
- No telemetry, tracking, or usage data is collected by this plugin.
Since the remote server is your own, its terms of service and privacy policy are governed by your own hosting provider.