Возможно ли загрузить файл на S3 с помощью CarrierWave без модели?

CarrierWave имеет потрясающую документацию, пока вам не понадобится делать это без модели!

У меня настроены параметры загрузки и настройки тумана, и все они отлично работают при использовании установленного загрузчика на модели, но теперь я хочу сделать это без модели.

У меня есть это:

 uploader = CsvUploader.new
 something = uploader.store!(File.read(file_path))
 uploader.retrieve_from_store!(self.file_name)

Когда я звоню. Store! код запускается сразу, что странно, поскольку загрузка файла занимает несколько секунд?

Затем, после того как я позвоню .retrieve_from_store! объект загрузки имеет всю правильную информацию S3, такую как полные URL и прочее.

Тем не менее, позвонив:

uploader.file.exists?

возвращает ложь И просмотр URL-адресов s3 возвращает ключ не найден ошибка от s3.

Итак, что я делаю не так? Повторюсь, это работает, когда смонтирован, поэтому я нене думаю, что этомои настройки тумана.

Мой загрузчик:

class CsvUploader < CarrierWave::Uploader::Base
  # Choose what kind of storage to use for this uploader:
  storage :fog

  # Override the directory where uploaded files will be stored.
  # This is a sensible default for uploaders that are meant to be mounted:
  include CarrierWave::MimeTypes
  process :set_content_type

  def store_dir
    "uploads/public/extranet_csvs"
  end

  def cache_dir
    "/tmp/uploads"
  end

  # Add a white list of extensions which are allowed to be uploaded.
  # For images you might use something like this:
  def extension_white_list
    %w(csv)
  end
end

Ответы на вопрос(1)

Ваш ответ на вопрос