ShrineでS3にアップロードする際のmetadataを正しく設定する
解決
image_uri = Addressable::URI.convert_path("https://path/to/image.jpg") URI.parse(image_uri).open do |file| metadata = { "mime_type" => MIME::Types.type_for(@image_uri.to_s).first.content_type, "filename" => @image_uri.basename, } # metadataが正しく設定されていないと、uploaded_file.metadataも空 uploaded_file = Shrine.upload(file, storage_key, metadata: metadata) end 注意
metadataのキーをシンボルにすると設定されないので注意。
shrine/s3.rb at master · shrinerb/shrine · GitHub でmetadataの検索が文字列でなされている為。
shrine_metadata.values_at("mime_type", "filename") This post is licensed under CC BY 4.0 by the author.