mackrais / thumbnail-bundle
v1.0.4
2021-08-03 13:15 UTC
Requires
- ext-redis: >=4.3
- pimcore/pimcore: >=6.9 <7.0
- symfony/messenger: >=4.3
Requires (Dev)
- codeception/codeception: ^2.2
README
启用基于异步工作进程的缩略图创建。
向 Pimcore 系统添加大量高分辨率图片可能会导致高负载情况。通过作业延迟缩略图创建可以缓解这种情况。
如果系统中新添加了资产,将阻止正常立即生成缩略图,并添加一个默认占位符缩略图。同时,为 Symfony 消息传递组件添加缩略图创建作业。一旦消息被处理,占位符图像将被正确缩略图替代。
许可证
GPLv3 - 查看:gpl-3.0.txt
需求
- Pimcore >= 6.0.0
- 如果使用 rabbitmq 传输,则需要 RabbitMQ(对于 PHP 7.3 上的 ampq,请参阅:php-amqp/php-amqp#337)
- 如果使用 redis 传输,则需要 php-redis >= 4.3
- 如果使用 redis 传输,则需要 redis 服务器 >= 4.3(需要 XREADGROUP 支持)
安装
- 使用 composer 安装包
composer require mackrais/thumbnail-bundle。 - 配置包(见下文)
- 执行
bin/console pimcore:bundle:enable MackraisThumbnailBundle。
配置
- 只要没有补丁阻止 Pimcore 生成系统缩略图,更改
vendor/pimcore/pimcore/models/Asset/Image.php文件中的update方法,将$path = $this->getThumbnail(Image\Thumbnail\Config::getPreviewConfig())->getFileSystemPath();行更改为$path = $this->getThumbnail(Image\Thumbnail\Config::getPreviewConfig())->getFileSystemPath(true); - 禁用低质量预览生成
# app/config/config.yml pimcore: assets: image: low_quality_image_preview: enabled: false
- 配置 Symfony Messenger(请参阅 https://symfony.com.cn/doc/current/messenger.html)。
# app/config/local/messenger.yaml framework: messenger: transports: #sample format: #async: "%env(MESSENGER_TRANSPORT_DSN)%" # sample redis transport, tested: async: "redis://redis:6379/messages" #doctrine does not work on pimcore, as only dbal is loaded, not doctrine! #async: "doctrine://default" # sample rabbitmq, tested: #async: "amqp://rabbitmq:rabbitmq@rabbitmq:5672/%2f/messages" routing: # async is whatever name you gave your transport above 'Mackrais\ThumbnailBundle\Message\ThumbnailJob': async # The bus that is going to be injected when injecting MessageBusInterface default_bus: command.bus buses: command.bus: middleware: - validation
- 通过控制台(或 supervisord,请参阅 https://symfony.com.cn/doc/current/messenger.html)处理异步消息(作业),添加
-vv以查看个别处理的消息
bin/console messenger:consume
配置额外的缩略图格式
如果资产上有文本属性 thumbnailConfig(可能继承自父文件夹),其中包含逗号分隔的资产格式名称列表,则还会生成这些格式的缩略图。
配置缩略图占位符
@todo 尚未实现