Title: Uploads Relay for Local Development by Carl Alberto
Author: Carl Alberto
Published: <strong>1, Xunu de 2026</strong>
Last modified: 1, Xunu de 2026

---

Guetar plugins

![](https://ps.w.org/uploads-relay-crax/assets/banner-772x250.png?rev=3557065)

![](https://ps.w.org/uploads-relay-crax/assets/icon.svg?rev=3557065)

# Uploads Relay for Local Development by Carl Alberto

 By [Carl Alberto](https://profiles.wordpress.org/carl-alberto/)

[Download](https://downloads.wordpress.org/plugin/uploads-relay-crax.1.0.0.zip)

 * [Details](https://ast.wordpress.org/plugins/uploads-relay-crax/#description)
 * [Reviews](https://ast.wordpress.org/plugins/uploads-relay-crax/#reviews)
 *  [Installation](https://ast.wordpress.org/plugins/uploads-relay-crax/#installation)
 * [Development](https://ast.wordpress.org/plugins/uploads-relay-crax/#developers)

 [Support](https://wordpress.org/support/plugin/uploads-relay-crax/)

## Description

**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

 1. A visitor or developer requests an upload file (e.g., an image in a post).
 2. If the file does not exist locally, WordPress returns a 404.
 3. The plugin intercepts the 404, fetches the file from the configured remote server,
    and serves it.
 4. 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.

## Installation

 1. Upload the `uploads-relay-crax` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the “Plugins” menu in WordPress.
 3. Go to **Settings  Uploads Relay**.
 4. Enter the remote uploads URL (e.g., `https://example.com/wp-content/uploads`).
 5. Choose your preferred mode and enable the proxy.

## FAQ

### Does this plugin work in production?

No. The plugin is designed exclusively for local development and will only function
when `wp_get_environment_type()` returns `local`. This is a safety measure to prevent
unintended use in production.

### What is the difference between the two modes?

**Proxy only when missing locally** keeps your local upload URLs intact and only
fetches from the remote server when a file is not found locally. This is the recommended
mode for most use cases.

**Always rewrite URLs to remote** changes all upload URLs site-wide to point to 
the remote server. This is the fastest option but means all media is loaded from
the remote server, even if files exist locally.

### Does the remote server need any special configuration?

No. The plugin simply requests files from the remote server’s uploads URL. As long
as the files are publicly accessible, no changes are needed on the remote server.

### Will cached files count toward my local disk space?

Yes. When caching is enabled, proxied files are saved to your local `wp-content/
uploads/` directory. You can set a maximum cache size in megabytes to limit disk
usage.

### Does this plugin collect any data or contact external services?

No. The plugin does not collect any user data, usage statistics, or telemetry. The
only external requests it makes are HTTP GET requests to the remote server URL that
you configure in the plugin settings. No requests are made until you explicitly 
enable the proxy and provide a URL.

### What file types are supported?

By default, the plugin proxies common media file types: JPG, JPEG, PNG, GIF, WebP,
SVG, PDF, MP4, MP3, DOC, DOCX, and ZIP. You can customize the allowed extensions
in the settings.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Uploads Relay for Local Development by Carl Alberto” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ Carl Alberto ](https://profiles.wordpress.org/carl-alberto/)

[Translate “Uploads Relay for Local Development by Carl Alberto” into your language.](https://translate.wordpress.org/projects/wp-plugins/uploads-relay-crax)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/uploads-relay-crax/),
check out the [SVN repository](https://plugins.svn.wordpress.org/uploads-relay-crax/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/uploads-relay-crax/)
by [RSS](https://plugins.trac.wordpress.org/log/uploads-relay-crax/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.
 * Proxy missing uploads from a remote server.
 * Always remote URL rewrite mode.
 * Optional local caching with size limits.
 * Admin settings page.
 * Environment type guard (local only).
 * Path traversal and extension validation.

## Meta

 *  Version **1.0.0**
 *  Last updated **5 díes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/uploads-relay-crax/)
 * Tags
 * [development](https://ast.wordpress.org/plugins/tags/development/)[local](https://ast.wordpress.org/plugins/tags/local/)
   [media](https://ast.wordpress.org/plugins/tags/media/)[proxy](https://ast.wordpress.org/plugins/tags/proxy/)
   [uploads](https://ast.wordpress.org/plugins/tags/uploads/)
 *  [Advanced View](https://ast.wordpress.org/plugins/uploads-relay-crax/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/uploads-relay-crax/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/uploads-relay-crax/reviews/)

## Contributors

 *   [ Carl Alberto ](https://profiles.wordpress.org/carl-alberto/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/uploads-relay-crax/)