Techioz Blog

ImageKit はローカルでは正常に動作しますが、heroku では動作しないのはなぜですか?

概要

puts "Uploading image #{@game_id}"

kit = IMGKit.new(@game_url, quality: 50)
image_data = kit.to_png

obj = S3.object(File.join(@bucket_path, "#{@game_id}.png"))
obj.put(body: image_data, acl: 'public-read', content_type: 'image/png')

puts " ------------- image uploaded successfully -------------- "

このコードはローカルでは正常に動作します。画像を確認すると正しい画像が表示されますが、heroku にアップロードしてこれを確認すると、0 バイトの画像が表示されます。

なぜこのような動作を示すのか誰か教えていただけますか?

解決策

クラウドストレージを使用していますか? そうでない場合は、プロジェクト内で設定します。Heraku がアクセスできるのはクラウド ストレージ ファイルのみであり、マシン上のローカル ファイルには Heroku からアクセスできないためです。