2017-03-27 9 views
0

私にはビデオが添付されたモデルがあります。私は一連のサムネイルと共にビデオの拡大版を作成したいと思います。検証に失敗しました:Video Paperclip :: Errors :: NotIdentifiedByImageMagickError

has_attached_file :video, 
    styles: { 
     original: { format: 'mp4', processors: [:transcoder] }, 
     large: { geometry: "720x720", format: 'jpg', processors: [:thumbnail] }, 
     medium: { geometry: "540x540", format: 'jpg', processors: [:thumbnail] }, 
     thumb: { geometry: "180x180", format: 'jpg', processors: [:thumbnail] } 
    }, 
    default_url: "" 

私は私の開発環境でこれをテストするとき、それは完璧に動作します:私は次のセットアップを持っています。ビデオとすべての画像のサイズが正しく設定されています。しかし、私がHerokuにデプロイすると、次のエラーが発生します。

Validation failed: Video Paperclip::Errors::NotIdentifiedByImageMagickError 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/validations.rb:78:in `raise_validation_error' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/validations.rb:50:in `save!' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/attribute_methods/dirty.rb:30:in `save!' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/transactions.rb:324:in `block in save!' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/transactions.rb:395:in `block in with_transaction_returning_status' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `block in transaction' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `transaction' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/transactions.rb:211:in `transaction' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/transactions.rb:392:in `with_transaction_returning_status' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/transactions.rb:324:in `save!' 
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/suppressor.rb:45:in `save!' 
/app/app/models/concerns/snapshot_methods.rb:37:in `copy_from_ziggeo!' 
/app/app/workers/snapshot_transcoder.rb:16:in `perform' 
/app/vendor/bundle/ruby/2.3.0/gems/resque-status-0.5.0/lib/resque/plugins/status.rb:161:in `safe_perform!' 
/app/vendor/bundle/ruby/2.3.0/gems/resque-status-0.5.0/lib/resque/plugins/status.rb:137:in `perform' 

ここでは何が欠けていますか?私はNotIdentifiedByImageMagickErrorを検索し、この問題に関する他の多くの質問をスキャンしましたが、私の問題を解決するのに成功しませんでした。

私が見たソリューションの多くは、開発中にPaperclip.options[:command_path] = "/usr/bin/identify"を設定することが含まれています。私の問題は、唯一の生産であるので、私はそうのように、私の本番環境のために正しいパスに下塗り、生産にこれを適用してみました:

Paperclip.options[:command_path] = "/app/vender/imagemagick/bin/identify" 

は、これは効果がなかったです。どちらもなかった/app/vender/imagemagick/bin

答えて

0

私は多くの頭を抱えた後、私のアプリのキャッシュをパージしImageMagickを再インストールすることでこれを解決しました。

  1. heroku-repo CLIをインストールし、heroku repo:purge_cache -a APP_NAMEを実行します。ここで私が撮った手順は次のとおりです。
  2. コミット空を​​作成します:Herokuのにgit commit --allow-empty -m "Hope this works"
  3. 再デプロイ:Herokuのは、今、最初からすべての静的な資産と依存関係を再構築する必要があるのでgit push heroku master

再デプロイには数分かかります。

私が理解しているところでは、この問題は何とかImageMagickのキャッシュされたコピーの欠陥が原因です。私はこの問題の原因をより詳細に説明できる人の答えをうれしく受け入れます。今は解決されていますが、将来的にはこの問題が再び起こることはないと私は確信していません。

関連する問題