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 и т.д., для хранения файла, прежде чем пытаться его извлечь.

Вернуться на верх