#carrierwave #ruby-on-rails-6
Вопрос:
Я пытаюсь загрузить некоторые видео с помощью несущей волны и тумана на S3. Я использую устаревший код, который правильно функционировал при использовании его в контроллере для загрузки видео. Я использую тот же загрузчик в задании backgroad и нахожу, что место, в которое загружается файл, является uploads/tmp/
каталогом по умолчанию.
Вот фрагмент кода загрузчика:
class ProductMediumUploader < CarrierWave::Uploader::Base
storage :fog
include CarrierWave::MiniMagick
PERCENTAGE_RESIZE = 0.5
WIDTH_THRESHOLD, HEIGHT_THRESHOLD = [1200, 1200]
PROCESSED_IMAGE_EXTENSIONS = [".svg"]
def store_dir
"product_medium/#{model.id}"
end
def filename
if model.file_identifier.present?
model.file_identifier
elsif self.parent_version.present?
self.parent_version.filename
elsif original_filename.present?
"#{secure_token}.#{file.extension}"
end
end
end
А вот модель, которая использует загрузчик
class Product::Medium < ApplicationRecord
mount_uploader :file, ProjectSetupUploader
end
Несоответствие возникает, когда я запускаю следующее:
new_medium = Product::Medium.create(file: file)
Если я вызову этот код в контроллере, файл будет сохранен в ожидаемом расположении, но при создании в задании он будет сохранен в расположении этого формата:
uploads/tmp/1629814315-220279600208118-0001-9250/20210824-71418-sxry8o.mp4
Кто-нибудь сталкивался с этой проблемой раньше?