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