내 앱에서 업로드 사운드로 carrierwave를 사용합니다.Carrierwave, 내 캐시 폴더에 2 개의 폴더가 있고 내 파일은 내 캐시 폴더에 있습니다.
큰 파일을 사용하여 move_to_cache 및 move_to_store를 사용하기 위해 carrierwave를 구성하지만 문제는 파일을 지금 업로드 할 때 캐시 파일 carrierwave에서 두 개의 cache.id와 두 개의 폴더를 만들고 폴더에 폴더 하나를 생성하는 것입니다.
파일을 업로드 할 때 캐시 폴더에 1 개의 폴더가 있고 저장소 폴더에 1 개의 폴더가 있어야합니다. 그리고 내 캐시 폴더에 파일을 삭제하고 싶지만 사실 내 파일은 내 캐시 폴더에 있습니다.
나는 분명히 희망한다.
나는
class SoundUploader < CarrierWave::Uploader::Base
before :store , :print
def print(new_file)
puts ("PRINT CAAAAACHE")
puts (cache_id)
end
# Choose what kind of storage to use for this uploader:
storage :file
def store_dir
"tmp/#{model.class.to_s.underscore}/store/#{model.id}"
end
def cache_dir
"tmp/#{model.class.to_s.underscore}/cache/#{model.id}"
end
def move_to_cache
puts("MOVE TO CACHE ")
false
end
def move_to_store
puts("MOVE TO STORE ")
true
end
def extension_white_list
%w(3ga 3gp 3g2 3gpp 3gp2 m4a m4b m4p m4v m4r mp4 aac flac flv avi asf wma wmv dpx mkv mka mks bwf mpg mpeg mp1 mp2 mp3
m1v m1a m2a mpa mpv rm mov ogm ogg ogv oga ogx nut riff webm weba wav mxf asx ts aiff aif aifc au snd caf)
end
def filename
model.title = original_filename if model.title.to_s == ''
"#{secure_token}.#{file.extension}" if original_filename.present?
end
protected
def secure_token
var = :"@#{mounted_as}_secure_token"
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid)
end
end
감사의 당신의 도움이 당신에게 내 sound_uploader.rb을 제공합니다.