質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

Q&A

0回答

1572閲覧

CarrirWave AWS HEIC HEIF形式の保存について

konchan_exbaka

総合スコア2

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

0グッド

1クリップ

投稿2020/04/26 05:52

#解決したいこと
Railsアプリケーションにて先日AWSでのデプロイが完了し大まかな挙動確認も終わったのですが一点だけ問題がありました。
ローカルではうまく行っていたHEIC HEIF形式(iPhoneで撮影した写真)をiCloudで共有しMacで投稿する際のみうまくいきません。

#ローカル
・HEIC形式の保存+変換 ○
・JSでのプレビュー表示  ×

#本番環境(Mac)
・HEIC形式の保存+変換 ×
・JSでのプレビュー表示  ×

#本番環境(iPhone)
・HEIC形式の保存+変換 ○
・JSでのプレビュー表示  ○

このようにMacからHEIC画像を投稿する場合のみうまくいきません。
ご存知の方ご教授いただけると嬉しいです。

#コード

Ruby

1image_uploader.rb 2 3class ImageUploader < CarrierWave::Uploader::Base 4 # Include RMagick or MiniMagick support: 5 include CarrierWave::RMagick 6 include Piet::CarrierWaveExtension 7 # include CarrierWave::MiniMagick 8 if Rails.env.development? || Rails.env.test? 9 storage :file 10 else 11 storage :fog 12 end 13 14 def extension_whitelist 15 %w(jpg jpeg gif png HEIC HEIF heic heif) 16 end 17 18 process :convert => 'jpg' 19 process optimize: [quality: 10] 20 # process :resize_to_fit => [700, 700] 21 22 def filename 23 super.chomp(File.extname(super)) + '.jpg' if original_filename.present? 24 end 25 26 def filename 27 "#{secure_token}.#{file.extension}" if original_filename.present? 28 end 29 30 protected 31 def secure_token 32 var = :"@#{mounted_as}_secure_token" 33 model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid) 34 end 35 36 37end 38

Ruby

1carrierwave.rb 2 3require 'carrierwave/storage/abstract' 4require 'carrierwave/storage/file' 5require 'carrierwave/storage/fog' 6 7CarrierWave.configure do |config| 8 if Rails.env.development? || Rails.env.test? 9 config.storage = :file 10 else 11 config.storage = :fog 12 config.fog_provider = 'fog/aws' 13 config.fog_credentials = { 14 provider: 'AWS', 15 aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], 16 aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], 17 region: 'ap-northeast-1' 18 } 19 config.fog_directory = '×××' 20 config.asset_host = 'https://×××.s3.amazonaws.com' 21 end 22end

ローカルでは保存もされて表示もされますが本番では保存されずコントローラ で指定している

Ruby

1redirect_to new_item_path

が発生してしまいます。

どなたかお分かりになりますでしょうか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問