Я только что переключился с carrierwave_backgrounder на carrierwave_direct. У меня установлена и работает оператор carrierwave_direct. То есть основной файл загружается и может отображаться в представлении. Однако мои версии для пользователей не создаются.Когда версии НЕ обрабатываются с использованием carrierwave_direct?
Ниже моя работа:
class ProcessReceiptJob < ApplicationJob
queue_as :process_receipt
def perform(expense_id, key)
expense = Expense.find expense_id
uploader = expense.receipt
expense.key = key
expense.remote_receipt_url = uploader.direct_fog_url(with_path: true)
expense.save!
# expense.recreate_versions!
end
after_perform do |job|
expense = Expense.find(job.arguments.first)
expense.update_column :receipt_processing, false
end
end
Когда именно делает carrierwave_direct обрабатывать версии --- или, когда carrierwave поручено обрабатывать версии? Я предполагаю, что загружаю исходное изображение с помощью функции costs.remote_receipt_url, а затем вызываю save! запускает загрузчик для обработки версий. Это верно?
В любом случае мое исходное изображение загружается через фоновое задание --- однако версии не создаются/не загружаются.
Нужно ли мне «воссоздавать_версии», даже если они не существуют раньше? Должен ли я как-то явно обрабатывать версии после указания на исходный файл или должен обрабатываться автоматически?
Итак, я вижу, что мое утверждение выше правильно ... сохранить! действие после загрузки удаленного файла вызовет загрузчик. Мне интересно, не создаются ли мои версии, потому что файл из S3 имеет двоичный/октетный поток content_type ... – hellion