首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置PHP ImageMagick tmp目录

设置PHP ImageMagick tmp目录
EN

Stack Overflow用户
提问于 2016-11-29 14:15:40
回答 1查看 5.2K关注 0票数 5

我正在尝试设置ImageMagick用来转换文件的临时目录。当前,当转换大型PDF时,temp文件夹很快会达到2或3 to。这在服务器磁盘上保存得太多了,所以我计划使用AWS EFS来存储所有内容。我在/efs上安装了EFS驱动器,并试图将其用于临时路径。

我如何在ImageMagick中设置它?我尝试了以下几点:

  • 在php.ini中设置PHP的临时上传文件夹-这会破坏文件上传,这是不好的。
  • 更改ImagickMagick的config.xml文件,不起作用。
  • 添加环境变量MAGICK_TMPDIR=/efs
  • 添加环境变量MAGICK_TEMPORARY_PATH=/efs

不管我做什么,它总是在/tmp文件夹中进行转换。我该怎么设置这个?

因为它是PHP,所以不一样吗?显然,在命令行版本中,您可以这样做:

代码语言:javascript
复制
convert -define registry:temporary-path=/Volumes/external/tmp

我现在的PHP代码是这样的,我想知道这里是否有一个函数来设置tmp dir?就像$imagick->setTmpDir('/efs')之类的东西。我已经搜索了PHP,无法找到任何方法。

代码语言:javascript
复制
$imagick = new Imagick();
$imagick->setResourceLimit( Imagick::RESOURCETYPE_MEMORY, 5 ); //Limit RAM and force script to convert using disk swap
$imagick->setResolution(600,600); //Set DPI to 600
$imagick->setCompressionQuality(100);
$imagick->readImageBlob($file); //Load the image
$imagick->deskewImage(40); //Deskew image
$imagick->setImageFormat('jpg'); //Set format
$imagick->writeImages(storage_path("app/docs/".$doc->id.".jpg"), false); //Save the converted image

有什么想法吗?我已经干了好几天了!

Ubuntu服务器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-12 04:47:19

Imagick有一个"setRegistry“方法。http://php.net/manual/en/imagick.setregistry.php

您可以使用它设置imagemagick临时路径,如下所示:

代码语言:javascript
复制
$i = new Imagick();
$i->setRegistry('temporary-path', '/efs');
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40868089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档