我正在尝试通过附加某种unique UUID来定制通过CarrierWave上传的图像的原始文件名。问题是我不希望将此UUID也附加到后续版本名称上。
这里的目标是我希望原始文件能够被默默保护。因此,用户不能仅仅通过删除"thumb_image.jpg"
来获取"image.jpg"
并访问原始"thumb_"
。目标就是这样:
"00000001-image.jpg"
(原始)"thumb-image.jpg"
(版本1)"small-thumb-image.jpg"
(第2版)我似乎无法找到一种使用以下wiki文档将其正确集成的方法:
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
好吧,看来我可以通过以下方法来工作:
def filename
"#{secure_token}_#{original_filename.chomp(File.extname(super))}.#{file.extension}" if original_filename.present?
end
version :thumb do
process convert: 'jpg'
def full_filename(for_file = file)
"#{model.id}_thumb.jpg"
end
end
protected
def secure_token
var = :"@#{mounted_as}_secure_token"
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid)
end