本番環境を構築した際に, 以下のようなレスポンスが返ってくるようになった.
{
"status": 500,
"message": "バリデーションに失敗しました: Post image urltranslation missing: ja.errors.messages.mini_magick_processing_error"
}
上記のエラーが出る理由は2つ
config/locales/ja.yml
に, mini_magickのエラーの日本語訳を追加する.
ja:
errors:
messages:
carrierwave_processing_error: 処理できませんでした
carrierwave_integrity_error: は許可されていないファイルタイプです
carrierwave_download_error: はダウンロードできません
extension_white_list_error: "%{extension}ファイルのアップロードは許可されていません。アップロードできるファイルタイプ: %{allowed_types}"
extension_black_list_error: "%{extension}ファイルのアップロードは許可されていません。アップロードできないファイルタイプ: %{prohibited_types}"
rmagick_processing_error: "rmagickがファイルを処理できませんでした。画像を確認してください。エラーメッセージ: %{e}"
mime_types_processing_error: "MIME::Typesのファイルを処理できませんでした。Content-Typeを確認してください。エラーメッセージ: %{e}"
mini_magick_processing_error: "MiniMagickがファイルを処理できませんでした。画像を確認してください。エラーメッセージ: %{e}"
こうすることで, 実際のエラー内容を確認することができるようになる.
{
"status": 500,
"message": "バリデーションに失敗しました: Post image urlMiniMagickがファイルを処理できませんでした。画像を確認してください。エラーメッセージ: `magick identify /tmp/mini_magick20210114-12404-1ge0p8r.jpg` failed with error:\nidentify: delegate library support not built-in '/tmp/mini_magick20210114-12404-1ge0p8r.jpg' (XML) @ error/profile.c/ValidateXMPProfile/1927.\n"
}
まずはImageMagickのDelegates情報を確認する.
■ Staging
convert -version
Version: ImageMagick 7.0.10-48 Q16 x86_64 2020-12-14 https://imagemagick.org
Copyright: © 1999-2020 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib freetype jng jpeg lzma png tiff x xml zlib
■ Production
convert -version
Version: ImageMagick 7.0.10-57 Q16 x86_64 2021-01-11 https://imagemagick.org
Copyright: © 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): lzma zlib
僕の場合は, jpeg, png, xmlなどのライブラリが入っていないことがわかる.
なので, 各種ライブラリをインストールした後, 再度コンパイル/インストールを行う.
$ sudo yum install -y zlib-devel libjpeg-turbo-devel libpng-devel freetype-devel libtiff-devel libxml2-devel
$ cd 【ImageMagickを解凍(展開)したディレクトリ】
$ sudo ./configure
ここで, configureコマンドの実行結果からdelegateにjpeg, png, xmlなどのライブラリが入っていることがあるか確認
$ sudo make
$ sudo make install
$ convert -version
本番環境でもちゃんと必要なライブラリが利用できることが確認でき,
実際のAPIも正しく動くにようになった.
Version: ImageMagick 7.0.10-57 Q16 x86_64 2021-01-14 https://imagemagick.org
Copyright: © 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib freetype jng jpeg lzma png tiff xml zlib
Twitterフォロー待ってます!