ImageMagickがファイルの変換に使用する一時ディレクトリを設定しようとしています。現在、大きなPDFを変換する場合、一時フォルダは2〜3テラバイトになります。これはサーバのディスクを保持するにはあまりにも多いので、AWS EFSを使用してすべてを保存する予定です。私は/efs
にマウントされたEFSドライブを持っていて、それを一時パスとして使用しようとしています。PHP ImageMagick tmpディレクトリを設定する
ImageMagickでこれを設定するにはどうすればよいですか?私は、次のことを試してみました:
- php.iniでPHPの一時アップロードフォルダを設定する - これは、ファイルのアップロードを破壊し、動作しないImagickMagickのconfig.xmlファイルを、変更しない良い
- ではありません。
- どんなに私は何をすべきか、それは常に
/tmp
フォルダに変換しません環境変数MAGICK_TEMPORARY_PATH=/efs
の追加環境変数MAGICK_TMPDIR=/efs
PHPは違うのですか?どうやら、コマンドラインバージョンでは、あなたがこれを行うことができます:ここでのtmpディレクトリを設定する機能がある場合
convert -define registry:temporary-path=/Volumes/external/tmp
私の現在のPHPコードはこれです、私は不思議でしたか? $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サーバー。
たぶん、あなたはGhostscriptがそれを見つけることができますお使いの環境でTEMP =/EFSを配置する必要があります。 –