Я использую PDFKit для создания PDF-файлов с заданного URL-адреса в рамках задания Resque на кедрах Heroku. Мой код выглядит так:Создание файла с PDFKit на Heroku - Нет такого файла или каталога
kit = PDFKit.new(url)
pdf = kit.to_file("/tmp/#{SecureRandom.hex}.pdf")
Затем я загружаю файл с помощью тумана на 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, однако, я не уверен, где добавить этот флаг, если Я использую wkhtmltopdf через PDFkit.
«затем загрузите файл с помощью тумана на S3», это все сделано в том же рабочем процессе, да? В противном случае вы можете писать в tmp одного dyno и пытаться получить доступ к другому динамику, который не будет работать. – catsby
Привет. да, это делается в одном и том же рабочем процессе. Вторая строка - фактически object.pdf = kit.to_file ("/ tmp? # {SecureRandom.hex} .pdf"); object.save. Вызов сохранения объекта вызывает туман для загрузки изображения. – middkidd
проблема @middkidd решена? – khalidh