Я изо всех сил пытаюсь получить доступ к файлам на S3 с помощью Carrierwave.Файл загрузки и доступа Carrierwave на S3
В моем загрузчике файл doc_uploader.rb У меня есть следующий код
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
в uplooad «документ» модель определяется как следовать
class Doc < ActiveRecord::Base
belongs_to :user
mount_uploader :doc, DocUploader
end
Чтобы получить доступ к закачанному файлу У меня есть следующая строка код в контроллере
@doc = current_user.docs.order("created_at").last #last file uploaded by user
io = open("#{Rails.root}/public" + @doc.doc.url)
Все работает отлично на месте. Теперь я хочу переместить файл в S3 в пользователя я использую туман и заменить
storage :file
по
storage :fog
настраиваю мой конфигурационный файл carrierwave.rb и загрузка работает отлично. Однако, чтобы получить доступ к файлу я пытаюсь использовать
@doc = current_user.docs.order("created_at").last
io = open("#{@doc.doc.url}")
и я получаю следующее сообщение об ошибке
No such file or directory @ rb_sysopen - /uploads/doc/doc/11/the_uploaded_file.pdf
Может кто-нибудь дать мне правильный синтаксис для доступа к файлу на S3, пожалуйста? Благодарю.
У меня есть один вопрос, была ли запись документа сохранена до изменения хранилища: туман? – kurenn
Да, запись документа была сохранена. – Bastien