我用Dropbox和蜻蜓一起存储我的文件上传。
我有以下代码:
if hash[:file_dropbox].present? #DROPBOX
path = "Attachments/" + Time.now.strftime("%d%m%Y_%H%M") + "_" + rand(1000).to_s + "_" + File.basename(hash[:file_dropbox])
data = open(hash[:file_dropbox]) { |f| f.read }
file["file"] = Dragonfly[:images].store(data, path: path)
end问题:
蜻蜓使用我用于路径的文件名作为存储的名称。在使用Dragonfly.store时可以设置不同的单独文件名吗?
对于普通文件,蜻蜓使用original_filename,但我似乎不能通过Dragonfly.store设置它。
有什么建议吗?
EDIT1:
我试过以下几种方法:
file["file"] = Dragonfly[:images].store(data, path: path,
original_filename: "hello.docx")
file["original_filename"] = File.basename(hash[:file_dropbox])使用普通文件上传时,可以设置original_filename。但是我不能设置data.original_filename,因为它只是二进制数据。
发布于 2020-03-28 18:15:13
不知道你的设置是什么,但我有模型照片和蜻蜓附件设置为图像。就我而言,它的工作方式是这样的:
photo.image.meta["name"] = "new_file_name.jpg"发布于 2015-02-10 19:18:47
我从未使用过蜻蜓,但我正在浏览它们的源代码,我认为传递名称选项可能有效。请看一下Github回购
def name
meta["name"] || temp_object.original_filename
end发布于 2020-06-18 09:38:04
在使用DragonFly的模型类中,为图像添加一个访问器:
dragonfly_accessor :image do
storage_options{|attachment| {path: "<somehow generate your path>"}
endhttps://stackoverflow.com/questions/28429404
复制相似问题