Heroku не может найти сгенерированный файл
У меня есть проект Django, который генерирует PDF файл. Ниже приведен соответствующий код:
def createPDF(name):
current_path = os.path.dirname(os.path.dirname(__file__))
template = get_template(f'src.tex')
context = {
'content': name,
}
rendered_tpl = template.render(context).encode('utf-8')
process = subprocess.Popen(
['pdflatex', '-output-directory', f'{current_path}/templates'],
stdin=PIPE,
stdout=PIPE,
)
process.communicate(rendered_tpl)
Когда я запускаю локальный сервер и запускаю свою функцию, PDF сохраняется в моем каталоге шаблонов. Однако после развертывания на Heroku и генерации PDF PDF не найден. Я пытался найти его в bash, но его там просто нет
Что случилось?
Вот сообщение об ошибке:
[Errno 2] No such file or directory: '/app/templates/texput.pdf' -> '/app/media/pdf/myfirstcv.pdf'
В последний раз, когда я проверял, вы можете создавать или генерировать файлы на машине Heroku, но они исчезнут после того, как вы сделаете новый request
( т.е. если вы посетите новую страницу).
Это приводит только к выводу, что вы не можете использовать файловую систему Heroku и поэтому вам требуется другая система хранения данных.
Вам необходимо создать область storage
, такую как Cloudinary, AWS, Firebase и т.д., для хранения файла, прежде чем пытаться его извлечь.