所以我有一些工作代码使用回形针上传pdf到s3(here)。该代码将PDF分成jpg /页面,并将它们分别上传到s3。直接将PDF上传到S3并在后台进程中将PDF分成一个jpg每页
此代码不适用于较大文件的Heroku(我可能只需要最多10MB文件),因为heroku的超时时间为30秒。
我觉得简单地把上传放在后台进程(delayed_paperclip gem?)中仍然会导致超时,而且我需要将文件直接上传到s3。我见过我可以用gem 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,我怎么能对图像进行处理。也许我需要直接上传文件,然后让heroku访问图像并进行处理?任何帮助将不胜感激。