Итак, у меня есть некоторый рабочий код, который загружает pdf в s3 с помощью скрепки ( здесь ).Код разбивает PDF-файл на jpg / страницу и загружает каждый из них на s3.
Этот код не работает на Heroku для больших файлов (мне, вероятно, нужно только до 10 МБ файлов), так как у heroku естьТайм-аут 30 секунд.
У меня сложилось впечатление, что простое помещение загрузки в фоновый процесс (gem delayed_paperclip?) Все равно приведет к тайм-ауту, и что мне нужно фактически загрузить файл непосредственно в s3,Я видел, что могу сделать это с помощью гема carrierwave_direct .
Итак, теперь проблема в том, как заставить следующий код:
def make_manual_pages
if valid?
Paperclip.run('convert', "-quality #{ManualPage::QUALITY} -density #{ManualPage::DENSITY} #{manual.url} #{manual.url}%d.png")
images = Dir.glob("#{set_ups.url}*.png").sort_by do |line|
line.match(/(\d+)\.png$/)[1].to_i
end
images.each do |page_image|
manual_pages.build(:image => File.open(page_image))
end
FileUtils.rm images
end
end
работать с carrierwave_direct.
Или, возможно, я неправильно подхожу к этой проблеме .. потому что я даже не вижу, как я могу выполнить обработку изображения, если я непосредственно загружаю его в s3.Может быть, мне нужно напрямую загрузить файл, затем иметь доступ к изображению и затем выполнить обработку?Любая помощь будет принята с благодарностью.