1
我正在使用PDFKit從Heroku Cedar上Resque作業中的給定url創建pdf。我的代碼如下所示:使用PDFKit在Heroku上生成文件 - 沒有這樣的文件或目錄
kit = PDFKit.new(url)
pdf = kit.to_file("/tmp/#{SecureRandom.hex}.pdf")
然後我使用fog將文件上傳到S3以便永久存儲。這項工作通常工作,但也可能失敗的時間與第三:
No such file or directory - /tmp/a05c165fc80878b75fd15c447695de71.pdf
手動通過控制檯運行的代碼會產生同樣的錯誤。
根據Heroku文檔,我應該可以在Cedar上的應用程序目錄中的任何位置編寫一個臨時文件。我試着先創建tmp目錄(在控制檯中),但似乎沒有改變任何東西。沒有保存到「#{Rails.root}/tmp /#{SecureRandom.hex} .pdf」。
任何想法將不勝感激。
UPDATE
在控制檯完整的錯誤是:
Error: Failed loading page http://grist.org/living/you-look-great-in-green-clothing-industry-gets-a-makeover-maybe.html
(sometimes it will work just to ignore this error with --load-error-handling ignore)
Errno::ENOENT: No such file or directory - /tmp/55a1d418074736decfd4e123d8e2bba2.pdf
看來,也許這是從wkhtmltopdf到來的錯誤,但是,我不知道在哪裏添加此標誌我通過PDFkit使用wkhtmltopdf。
「然後使用霧上傳文件到S3」這一切都在同一個工作進程中完成,是嗎?否則,你可能會寫一個dyno的tmp,並試圖從另一個dyno訪問,這將無法正常工作。 – catsby 2013-03-27 16:57:33
嗨。是的,這是在同一個工作進程中完成的。第二行實際上是object.pdf = kit.to_file(「/ tmp?#{SecureRandom.hex} .pdf」); object.save。調用保存在對象上會觸發霧以上傳圖像。 – middkidd 2013-03-27 18:42:54
@middkidd問題解決了嗎? – khalidh 2017-08-07 05:45:33