我正在尝试使用Imagemagick通过Heroku上的https访问图像。如何在Heroku上更改策略(在policy.xml中)?
Heroku于2016年5月制作了“ImageMagick安全更新”:https://devcenter.heroku.com/changelog-items/891
在输入heroku run bash
和convert -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'
答案 0 :(得分:1)
我找到了一个相对简单的解决方案。
在应用程序的源代码中创建一个.magick
目录,然后在其中添加您的policy.xml
。然后,您必须将环境变量MAGICK_CONFIGURE_PATH
设置为/app/.magick
,以便以比默认文件更高的优先级来加载文件。
答案 1 :(得分:0)
我们需要在heroku上安装第三方软件ImageMagick。我使用这个https://github.com/ello/heroku-buildpack-imagemagick构建包来安装ImageMagick。
因此,在bin / compile中,有一个策略文件,它限制图像通过Https读取,启用属性rights
到read
,允许读取Https
fork the repo并进行更改,提交并将该存储库url添加到heroku buildpacks
答案 2 :(得分:-1)
阅读ImageTragick处的警告,然后进行备份并删除限制您的行。
通过执行以下操作,您可以在与其他XML配置文件相同的目录中找到要编辑的文件 - 该文件名为policy.xml
:
convert -debug configure -list font 2>&1 | grep -E "Searching|Loading"