HerokuのRailsアプリにファイルをアップロードするための最良の方法を探しています。セットアップ:Rails 3、Carrierwave、Heroku、Mongoid
問題:散発的に、ユーザーがさまざまなサイズのファイルをアップロードすると、画像はデータベースに保存されますが、AmazonS3ではどの形式でも利用できません。これにより、画像がフロントエンドに欠落画像プレースホルダーとして表示されます。
考えられる原因:画像はアップロードされていますが、処理に時間がかかりすぎて、Herokuの30秒のリクエスト時間制限が厳しいためにリクエストがタイムアウトするか、画像サイズが大きすぎてアップロードしようとすると、リクエストがH12エラーでタイムアウトします。
解決策:carrierwave-directを実装し、処理をバックグラウンドに移動します
ブロッカー:CarrierWaveDirectは、CarrierWaveの代わりにはなりません。実際、イメージのアップロードプロセスにいくつかの大きな変更が導入されています。特に、イメージはdbレコードの永続化と同時にアップロードされません。また、既存のディレクトリ構造では機能しないため、既存のファイルを新しい構造に移動するのは非常に難しいようです。CarrierWaveBackgrounderは、埋め込まれたドキュメントではうまく機能しません。
質問:これを行うにはどうすればよいですか?必要に応じてサンプルコードを作成しますが、単にコーディングするだけでなく、これについても考えてみてください。