我剛剛從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指示來處理版本?我假設使用expense.remote_receipt_url加載原始圖像,然後調用save!觸發上傳器處理版本。那是對的嗎?
在任何情況下,我的原始圖像通過後臺作業上傳 - 但是,版本不會被創建/上傳。
我是否需要「recreate_versions」甚至認爲他們以前不存在?我是否需要以某種方式在指向源文件之後明確處理版本,還是應該自動處理?
所以,我看到我上面的陳述是正確的。保存!加載遠程文件後的動作將觸發上傳器。我想知道如果我的版本沒有被創建,因爲S3的文件有content_type'binary/octet-stream'... – hellion