Imagemagick - 在 Heroku 上更改 policy.xml

Imagemagick - change policy.xml on Heroku

我正在尝试使用 Imagemagick 在 Heroku 上通过 https 访问图像。如何更改 Heroku 上的政策(在 policy.xml 中)?

Heroku 在 2016 年 5 月做了一个 "ImageMagick security update":https://devcenter.heroku.com/changelog-items/891

输入 heroku run bashconvert -list policy 后,我可以看到策略列表:

Path: [built-in] Policy: Undefined rights: None

Path: /etc/ImageMagick/policy.xml [...] Policy: Coder rights: None pattern: HTTPS [...]

如何更改政策?

更新 1: 这是日志文件中的错误:

Command failed: convert.im6: not authorized `//scontent-fra3-1.xx.fbcdn.net/v/t1.0-9/13962741_132344500547278_4974691444630710043_n.jpg?oh=c169b4ffce9e5ce330ee99214cc6b8d5&oe=5880F245'

阅读 ImageTragick 处的警告,然后备份并删除限制您的行。

您可以通过执行以下操作在与其他 XML 配置文件相同的目录中找到要编辑的文件 - 该文件名为 policy.xml:

convert -debug configure -list font 2>&1 | grep -E "Searching|Loading"

我们需要在heroku上安装第三方软件ImageMagick。我使用这个 https://github.com/ello/heroku-buildpack-imagemagick 构建包来安装 ImageMagick。

所以,在bin/compile里面有一个策略文件,它限制图像通过Https读取,启用属性rightsread允许通过Https读取

分叉存储库并进行更改,提交存储库并将其添加到您的 heroku buildpacksurl

我找到了一个相对简单的解决方案。

在您应用的源代码中创建一个 .magick 目录,然后在其中添加您的 policy.xml。然后,您必须将环境变量 MAGICK_CONFIGURE_PATH 设置为 /app/.magick,以便以比默认文件更高的优先级加载您的文件。