我想設置ImageMagick用來轉換文件的臨時目錄。目前,在轉換大型PDF文件時,臨時文件夾會很快達到2或3兆兆字節。這對服務器磁盤來說太多了,所以我打算使用AWS EFS來存儲所有內容。我將EFS驅動器安裝在/efs
,並試圖將其用於臨時路徑。設置PHP ImageMagick tmp目錄
我該如何在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服務器。
也許你需要把TEMP =/EFS在您的環境下的ghostscript可以找到它。 –