나는 carrierwave_backgrounder에서 carrierwave_direct로 전환했습니다. carrierwave_direct를 설정하고 작동시킵니다. 즉, 주 파일이 업로드되고 뷰에 표시 될 수 있습니다. 그러나 내 업 로더 버전이 생성되지 않습니다. carrierwave이 버전을 처리하도록 지시 할 때, 버전이 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 않습니다 --- 나 :
다음은 내 일입니까? expense.remote_receipt_url을 사용하여 원본 이미지를로드 한 다음 save를 호출한다고 가정합니다! 업 로더가 버전을 처리하도록 트리거합니다. 그 맞습니까?
어쨌든 내 원본 이미지는 백그라운드 작업을 통해 업로드되고 있습니다. 그러나 버전은 생성/업로드되지 않습니다.
이전에 존재하지 않았던 "recreate_versions"가 필요합니까? 소스 파일을 가리킨 후에 버전을 명시 적으로 처리해야합니까, 아니면 자동으로 처리해야합니까?
위의 내용이 정확하다는 것을 알았습니다. 저장하십시오! 원격 파일을로드 한 후 조치가 업 로더를 트리거합니다. S3의 파일에 content_type 'binary/octet-stream'이 있기 때문에 제 버전이 만들어지지 않을지 궁금합니다. – hellion