Как временно загрузить изображение на Heroku?
Я столкнулся со следующей проблемой: Я развернул Django-app на Heroku и хочу загрузить изображение с помощью ввода файла. Но оно не должно храниться там, оно может быть удалено после перезагрузки страницы, но я хочу иметь URL к этому изображению на это время. Итак, я понятия не имею, как это сделать, кто-нибудь может мне помочь?
Файловая система Heroku является эфемерной - это означает, что любые изменения в файловой системе во время работы дино сохраняются только до тех пор, пока дино не будет выключено или перезапущено. Каждый dyno загружается с чистой копией файловой системы из последнего развертывания. Это похоже на работу многих контейнерных систем, таких как Docker.
Кроме того, при нормальной работе динамо-машины перезапускаются каждый день в процессе, известном как "Циклирование".
для получения дополнительной информации прочитайте эту документацию https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted
Что бы я сделал вместо использования aws s3 bucket используйте cloudinary, который является быстрым бесплатным для использования до 25gb как его использовать прочитайте эту полную документацию https://www.section.io/engineering-education/uploading-images-to-cloudinary-from-django-application/ а для статических файлов используйте whitenoise который я также использую и рекомендую. Надеюсь, это поможет вам решить вашу проблему
Heroku не разрешает постоянное хранение изображений. Они говорят в статье:
Heroku имеет "эфемерный" жесткий диск, это означает, что вы можете записывать файлы на диск, но эти файлы не сохранятся после перезапуска приложения.
Временный способ обойти это - хранить изображения в базе данных PostgreSQL (StackOverflow Thread). Лучшим решением является загрузка изображений в ведро Amazon S3 и хранение только URL-адресов изображений в базе данных.