carrierwave

Rails で Base64 エンコードされた文字を Carrierwave で保存する最も良い方法

File クラスを使うと、ストレージの読み書きが発生し、速度が落ちるため、メモリ上だけで処理を行う方針。 File クラスと同じ処理をするため、メソッドを定義する。 class StringFileIO < StringIO def self.create_from_canvas_base64 str return nil if st…

Carrierwave で 独自のversion ファイルを保存する

例えば、wav ファイルを 保存したときに、別バージョンとして mp3 も保存するような場合。 version :mp3 do process :convert_mp3 # この名前が、最終的なファイル名になる。 # デフォルトで、 mp3_****.wav になっているので、リネーム def full_filename f…

Rails で Base64 エンコードされたデータを Carrierwave で保存する

class Api::FilesController < Api::ApplicationController def create # file = params[:data] data_str = params[:data_str] file = File.new # file.data = data file.data_str = data_str end end class File < ActiveRecord::Base mount_uploader :data…

CarrierWave で mp3 保存時に 音の長さを保存する

Mp3Info は、パス指定でなければ利用出来ないので、 current_path によって、一時ファイルを開き直している。 class ItemDataUploader < CarrierWave::Uploader::Base include CarrierWave::MimeTypes storage :fog process :set_content_type process :chec…

carrierwave で処理後の画像サイズを取得する

image を セットしたとき、同時にカラムにサイズを保存する処理 class PhotoImageLargeUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick ... process resize_to_fit: [100, 100] process convert: 'jpeg' process :hoge def hoge # rma…