spacecatninja/imager-x-aws-serverless-transformer

Imager X 的 AWS Serverless 图片处理器转换器

3.0.2 2024-04-29 10:17 UTC

This package is auto-updated.

Last update: 2024-08-29 10:57:34 UTC


README

一个用于在 Imager X 中使用 AWS Serverless Image Handler 作为转换器的插件。
此外,也是如何为 Imager X 制作自定义转换器的示例。

需求

此插件需要 Craft CMS 5.0.0-beta.1 或更高版本,Imager X 5.0.0-beta.1 或更高版本,以及一个可工作的 AWS Serverless Image Handler 设置。

使用方法

首先,您需要在 AWS 中设置一个 AWS Serverless Image Handler。如果您需要帮助和指导,Andrew Welch 有 一篇详尽的博客文章

接下来,按照以下说明安装和配置此转换器。然后,在您的 Imager X 配置 中,将转换器设置为 awsserverless,即

'transformer' => 'awsserverless',

转换现在默认使用 AWS Serverless Image Handler 进行转换。使用以下简单的转换测试您的配置

{% set transform = craft.imagerx.transformImage(asset, { width: 600 }) %}
<img src="{{ transform.url }}" width="600">
<p>URL is: {{ transform.url }}</p>

如果不起作用,请确保分发 URL 是正确的,并且图像处理器已设置为使用与您的资产相同的存储桶。

注意事项、缺点和建议

此转换器仅支持 Imager X 使用默认 craft 转换器时可以执行的部分功能。所有基本转换参数都受支持,以下是一些例外

  • 图像处理器不支持基于百分比的焦点,它仅支持基于边缘的位置,如 left topright center 等。Craft 焦点将自动转换为最近的位置。
  • 只有存储在 AWS 存储桶中的资产才能进行转换。
  • 不支持 cropOnly 调整大小模式。
  • 不支持 cropZoom 转换参数。
  • 不支持 framespreEffects
  • 以下 effects 被转换并支持:grayscalenegativenormalizesharpenblur
  • 来自图像处理器生成的 URL... 不是很美观。

要传递底层 sharp.js 库理解的附加选项,您可以使用 transformerParams 转换参数。示例

{% set transforms = craft.imagerx.transformImage(asset, 
    [{width: 400}, {width: 600}, {width: 800}], 
    { ratio: 2/1, transformerParams: { tint: '#ff0066' } }
) %}

如果您需要,也可以覆盖自动转换的参数,如 toFormatresize

{% set transforms = craft.imagerx.transformImage(asset, 
    [{width: 400}, {width: 600}, {width: 800}], 
    { ratio: 2/1, transformerParams: { tint: '#ff0066', toFormat: 'png', resize: { position: 'left top' } } }
) %}

有关更多信息,请参阅 sharp.js 文档

安装

要安装此插件,请按照以下说明操作

  1. 通过在项目目录中运行 composer require spacecatninja/imager-x-aws-serverless-transformer 使用 composer 安装。
  2. 您可以在 Craft 控制面板的设置 > 插件下安装插件,或通过命令行使用 ./craft plugin/install imager-x-aws-serverless-transformer 安装。

配置

您可以通过在配置文件夹中创建一个名为 imager-x-aws-serverless-transformer.php 的文件来配置转换器,并根据需要覆盖设置。

distributionUrl [字符串] (必需)

默认: 'distributionUrl'
这是您的 AWS 无服务器图像处理程序分布的 URL。示例

'distributionUrl' => 'https://dg5e6u1m25arf.cloudfront.net',

autoConvertGif [布尔值]

默认值:true
AWS 图像处理程序无法输出 GIF。将此设置设置为 true(默认值),转换器将自动将 GIF 图像转换为 PNG 以避免错误。如果您想手动在模板级别覆盖此设置(通过显式设置 format),则可以禁用此设置。

defaultBucket [字符串]

默认值:''
默认情况下,图像处理程序将尝试获取您要转换的资产的 AWS 体积的存储桶名称,并将其发送到图像处理程序,以便它知道从哪里获取图像。您可以使用此设置配置它应该回退到的默认存储桶。可能不需要,但您永远不知道。

确保在 AWS 中设置图像处理程序时,添加您已设置 Craft 使用的所有存储桶。

signatureKey [字符串]

默认值:''
AWS 图像处理程序支持使用 签名 URL 以防止第三方生成自己的转换。一旦您已配置图像处理程序使用它们,请添加您的签名密钥,生成的 URL 将包括一个正确散列的 ?signature= 参数,即可使用。

小心使用此设置!一旦在服务器端启用,任何没有有效签名的转换 URL 都将返回错误。

价格、许可证和支持

此插件采用 MIT 许可证发布。它需要 Imager X,这是一个商业插件,可在 Craft 插件商店中找到 (点击此处访问)。如果您需要帮助或发现错误,请在此存储库或 Imager X 的存储库中提交问题。