gpt4 book ai didi

php - 设置 PHP ImageMagick tmp 目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:38 25 4
gpt4 key购买 nike

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

如何在 ImageMagick 中进行设置?我尝试了以下方法:

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

无论我做什么,它总是在 /tmp 文件夹中进行转换。我该如何设置?

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

convert -define registry:temporary-path=/Volumes/external/tmp

我现在的PHP代码是这样的,我想知道这里有没有设​​置tmp目录的功能?就像 $imagick->setTmpDir('/efs') 之类的东西。我已经搜索了 PHP API,但找不到任何方法。

$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 服务器。

最佳答案

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

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

$i = new Imagick();
$i->setRegistry('temporary-path', '/efs');

关于php - 设置 PHP ImageMagick tmp 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40868089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com