phoenix-media / magento2-mediastoragesync
该模块从源服务器检索/media目录下的文件。
Requires
- php: ^7.0|^8.0
- magento/module-media-storage: *
README
该模块从源服务器检索/media目录下的文件。
功能描述
想象你有一个全新的本地开发环境,已经从Git上检出Magento代码。你已检索了数据库,但没有任何媒体资产,你的店铺前端看起来不完整。你可以从生产环境获取媒体文件夹的巨大存档,但没有人真的愿意下载数十个GB的文件只为了编辑几个目录页。
该模块实现了一些插件和观察者,首次从数据库加载实体时,它会从可配置的源服务器(类似于CDN)下载分类、产品和CMS块/页面的图片。这意味着你可以忘记媒体文件夹,只需浏览前端即可,图片将透明地下载和保存。
工作原理
在模块配置中,你可以配置基本URL,即你的生产/预发布Magento实例所在域名,从中获取数据库。在数据库中存储了分类和产品图片的相对路径。一旦加载这些实体,模块会检查它们的图片是否已存在于media/catalog中。如果没有,它将使用基本URL,从数据库中追加相对图片路径,并从源服务器下载文件。这可能会在第一次访问页面时减慢页面生成速度,但很快就会改善。
对于媒体文件夹中的其他资产,我们使用了另一种机制:也许你已经注意到了,Magento自带一个位于Magento根目录下的get.php文件。它的目的是从数据库检索图像数据,将其保存到主机文件系统,然后交付。我们的资产位于不同的Web服务器上,但在检索资产数据之外,其余部分非常相似。get.php通过media/.htaccess中的mod_rewrite规则或nginx配置中的等效规则调用。每次在/media中找不到文件时,都会触发此过程,因此它只会在第一次触发。MediaStorageSync模块下载文件,保存它,然后get.php交付文件。在第二次加载时,Web服务可以直接提供静态资产。
如何使用
- 通过Composer安装模块
composer require phoenix-media/magento2-mediastoragesync
- 启用它
bin/magento module:enable Phoenix_MediaStorageSync
- 安装模块并重建DI缓存
bin/magento setup:upgrade
如何配置
在您的Magento配置中找到模块配置,位于PHOENIX MEDIA部分。
启用:启用或禁用功能
URL:配置用于检索图片的源URL(例如,“https://magento.com/”)
可选地配置BasicAuth凭据。