PHPackages                             phoenix-media/magento2-mediastoragesync - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. phoenix-media/magento2-mediastoragesync

ActiveMagento2-module[File &amp; Storage](/categories/file-storage)

phoenix-media/magento2-mediastoragesync
=======================================

The module retrieves files in /media from origin server.

1.2.4(3y ago)2815.7k↓40.6%9[1 PRs](https://github.com/PHOENIX-MEDIA/magento2-mediastoragesync/pulls)MITPHPPHP ^7.0|^8.0

Since Mar 7Pushed 2y ago1 watchersCompare

[ Source](https://github.com/PHOENIX-MEDIA/magento2-mediastoragesync)[ Packagist](https://packagist.org/packages/phoenix-media/magento2-mediastoragesync)[ RSS](/packages/phoenix-media-magento2-mediastoragesync/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (7)Used By (0)

Phoenix Media Storage Sync
--------------------------

[](#phoenix-media-storage-sync)

The module retrieves files in /media from an origin server.

### What it does

[](#what-it-does)

Imagine you have a fresh local development environment with the Magento code checked out. You retrieved the database but you don't have any of the media assets and your store frontend just looks incomplete. You could grab a huge archive of the media folder from the production environment but no one really wants to download tens of gigabytes just to work on a few catalog pages.

This modules implements some plugins and observers that downloads images of categories, products and CMS blocks/pages from a configurable origin server similar to a CDN the first time you load an entity from the database. This means you can forget about the media folder and just browse the frontend as images are downloaded and saved transparently.

### How it works

[](#how-it-works)

In the module's configuration you can configure a base URL, the domain where your production/staging Magento instance is located from which to picked the database. In the database the relative paths of categories and product images are stored. Once those entities are loaded the module simply checks if their images are already in media/catalog. If not it uses the base URL, appends the relative image path from the database and downloads the files from origin server. This slows down page generation the first time you access a page but improves pretty quickly.

For other assets in the media folder we make use of another mechanism: Maybe you recognized Magento is shipped with a get.php file in the Magento root. It was intended to retrieve image data from a database, save it on the host's filesystem and then deliver it. Well, our assets are located at a different web server but beside the retrieval of the asset data the rest is pretty similar. The get.php is called via a mod\_rewrite rule in the media/.htaccess or equivalent rules in your nginx configuration. The process is triggered every time a file in /media is not found so it is only triggered the first time. The MediaStorageSync module downloads the file, saves it and the get.php delivers the file. On the second load the web service can directly deliver the static asset.

### How to use

[](#how-to-use)

1. Install the module via Composer:

```
composer require phoenix-media/magento2-mediastoragesync

```

2. Enable it `bin/magento module:enable Phoenix_MediaStorageSync`
3. Install the module and rebuild the DI cache `bin/magento setup:upgrade`

### How to configure

[](#how-to-configure)

Find the modules configuration in the PHOENIX MEDIA section of your Magento configuration.

Enable: Enable or disable the functionality

URL: Configure the source URL where to retrieve the images (e.g. "")

optionally configure credentials for BasicAuth.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity37

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 65.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~243 days

Recently: every ~300 days

Total

6

Last Release

1413d ago

PHP version history (3 changes)1.0.0PHP ~5.6.0|~7.0.0|~7.1.0|~7.2.0

1.2.2PHP ^7.0

1.2.4PHP ^7.0|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/cc4a7e1dd009e54a2bdd2af2b69fde430a7d5c1f36412adcf9e8c267e23aa9b1?d=identicon)[PHOENIX-MEDIA](/maintainers/PHOENIX-MEDIA)

---

Top Contributors

[![phoenix-bjoern](https://avatars.githubusercontent.com/u/846569?v=4)](https://github.com/phoenix-bjoern "phoenix-bjoern (15 commits)")[![VitaliyMPhoenix](https://avatars.githubusercontent.com/u/255889992?v=4)](https://github.com/VitaliyMPhoenix "VitaliyMPhoenix (6 commits)")[![Flyingmana](https://avatars.githubusercontent.com/u/237319?v=4)](https://github.com/Flyingmana "Flyingmana (1 commits)")[![VitaliyMartyschuk](https://avatars.githubusercontent.com/u/12122245?v=4)](https://github.com/VitaliyMartyschuk "VitaliyMartyschuk (1 commits)")

---

Tags

magento2

### Embed Badge

![Health badge](/badges/phoenix-media-magento2-mediastoragesync/health.svg)

```
[![Health](https://phpackages.com/badges/phoenix-media-magento2-mediastoragesync/health.svg)](https://phpackages.com/packages/phoenix-media-magento2-mediastoragesync)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15161.6M2.6k](/packages/illuminate-filesystem)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)[madnest/madzipper

Easier zip file handling for Laravel applications.

1382.3M6](/packages/madnest-madzipper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
