gesagtgetan / krakenoptimizer
利用Kraken API的Neos图像优化器
Requires
- ext-json: *
- guzzlehttp/guzzle: ~6.0
- neos/neos: ^5.0
Requires (Dev)
- squizlabs/php_codesniffer: ~3.4.2
README
GesagtGetan.KrakenOptimizer
利用Kraken API的Neos图像优化器
安装
composer require gesagtgetan/krakenoptimizer
在 https://kraken.io 上创建Kraken账户,并在 https://kraken.io/account/api-credentials 生成新的API密钥。
将凭证添加到您的全局 Settings.yaml
GesagtGetan:
KrakenOptimizer:
krakenOptions:
auth:
api_key: '<yourApiKey>'
api_secret: '<yourApiSecret>'
用法
警告
⚠ 如同任何活跃地在您的数据库和资源上工作的插件,确保您定期备份您的网站是个好主意。此插件尚未造成任何已知灾难,但安全总是比抱歉更好。
- 我们通常想优化所有现有资源。我们可以通过运行以下CLI命令来实现
./flow kraken:optimize
所有现有缩略图都将由Kraken的优化版本替代。默认情况下,我们执行 lossy 优化,因为这可以显著减小图像大小,而图像质量不会有明显下降。您可以通过更改设置中的 krakenOptions 来更改优化策略(设置 lossy: false),以及其他任意的Kraken API选项(请参阅 https://kraken.io/docs/)。
技巧
如果在初始优化过程中出现问题,可以从一个偏移量恢复优化。例如 ./flow kraken:optimize --offset 300 将跳过前299个缩略图。
警告
⚠ 执行此命令多次将可能导致已经优化的图像发送到Kraken API,从而仍然计入您的API配额,并且在多次执行有损优化时可能导致“过度优化”的图像。
- 现在是激活实时优化的完美时机。设置此标志后,所有生成的缩略图都将发送到Kraken进行改进
GesagtGetan: KrakenOptimizer: liveOptimization: true
♻ 不要忘记在生产环境中添加此标志后刷新您的缓存。
- 删除生产缓存
FLOW_CONTEXT=Production ./flow flow:cache:flush
其他选项
optimizeOriginalResource
通过启用 optimizeOriginalResource 标志,如果不需要为特定图像创建缩略图,则原始图像将被优化版本替代。如果所需的尺寸等于或低于原始图像,Neos不会为图像创建缩略图。
默认情况下,我们不优化原始图像。确保您有服务器的定期备份,以防优化过程中出现问题!
用法
GesagtGetan: KrakenOptimizer: optimizeOriginalResource: true
故障排除和常见问题解答
问:我在安装此插件之前已经优化了我的缩略图,但对结果不满意
答:如果您的缩略图已经显示出高压缩的迹象,如伪影,此插件无法恢复丢失的信息。在这种情况下,您需要使用 ./flow media:clearthumbnails 清除所有现有缩略图。请注意,这可能会对您的服务器造成很大负载,因为所有缩略图都需要在页面被调用时重新创建。您可以直接激活 liveOptimization,或者稍后通过运行 ./flow kraken:optimize 优化创建的缩略图。
如果您需要所有预设尺寸的所有缩略图,您可以通过运行 ./flow media:createthumbnails 和 ./flow media:renderthumbnails 预先生成它们。之后优化或激活 liveOptimization。