Я использую Dropbox с Dragonfly для хранения загруженных файлов.
У меня есть следующий код:
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 использует имя файла, которое я использую для пути, в качестве имени для хранения. Можно ли установить другое отдельное имя файла при использовании Dragonfly.store
?
С обычными файлами Dragonfly использует 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
, потому что это просто двоичные данные.