Я занимаюсь разработкой мобильного приложения с Flutter
framework.
На стороне API бэкэнда я использую фреймворк Spring Boot
и развертываю его в Heroku
(свободный план).
На стороне базы данных я использую надстройку PostgreSQL
в Heroku
.
Все хорошо, прежде чем работать с изображениями. Я запутался, когда мне нужно отправить изображение на сервер и сохранить его. Какова лучшая практика этого? Я видел два варианта после некоторых поисков. Это:
Первый вариант
- На стороне
Flutter
, получите изображение от пользователя - На стороне
Flutter
, конвертируйте изображение в BASE64
формат строки. - на стороне
Flutter
, POST
это как JSON
объект для бэкенда. - на стороне
Spring Boot
, получить строку BASE64
и сохранить это на PostgreSQL
дБ.
Второй вариант
- На
Flutter
стороне, взять изображение от пользователя - В
Flutter
сторона, преобразуйте изображение в строковый формат BASE64
. - на стороне
Flutter
, POST
это как JSON
объект для внутреннего интерфейса. - на стороне
Spring Boot
, получить строку BASE64
и преобразовать ее в файл реального изображения; - Со стороны
Spring Boot
сохранить фактический файл изображения в файловую систему хост-машины и сохранить путь к изображению в PostgreSQL
дб. (Но Heroku не разрешает запись в свою файловую систему) (Даже если запись в его файловую систему возможна, при каждом новом развертывании образы исчезнут)
Если я выберу второй вариант, что следует делать Я делаю для решения проблемы сохранения изображения в файловой системе Heroku
?
Какой вариант я должен использовать?
Есть еще один хороший вариант?