API сервис для загрузки (сохранения) файлов на сервер?
Немного застрял на одной задачи, есть старая программа, которая хранит всю информацию в бд, главная проблема это то, что большая часть бд - это картинки, возникла идея отделить от приложения его файловую часть. АПИ сервис (использую python+flask) для получение и отдачу картинки по guid, сделать не проблема, я думал сделать так, получать изображение, генерировать и писать в бд гуид, изображение в соответствующий раздел сохранять по средствам поднятого на этом же сервере фтп, но пока я это обдумывал, возникла мысль не использовать ftp, а писать силами веб-приложения в соответсвующую директорию.. Изучая вопрос какого-то внятного ответа не нашел (может не совсем верно ищу), может вы сталкивались с такими задачами, не смогли бы подсказать в какое направление смотреть, какой подход более правильный (скорее в плане хранения/расположении файлов)?
Как раз сделать АПИ для записи и отдачи из папок могу.., думал если смысл стыковать его с чем-то вроде FTP, тогда как я понимаю проще организовать доступ к файлом используя АПИ которое и будет работать с директорией
Для раздачи файлов лучше использовать Nginx, Varnish и прочие решения.
Файлы достаточно извлечь из БД и положить в папку для отдачи веб-вервером. Можно именовать файлы и с GUID.
Альтернативно, перенести файлы на S3-совместимое хранилище типа MinIO или же облака.
FTP - устаревший протокол и от него постепенно отказываются. Для раздачи файлов принято использовать HTTP/2.
Ромзес Панагиотис, собственно идею с ftp я подсмотрел на одном большом проекте, но не совсем понял причину его использования. Для работы своих АПИ я использую как раз связку nginx (как прокси) + uwsgi. Я как раз думал, будет ли хорошей практикой сделать для приложение доступ на запись и чтение к директории на сервере, где и будет хранится вся структура каталогов, и содержащиеся в них изображения. Учитывая специфику информации то облака отпадают, ее нужно хранить локально, а вот MinIO (это хранилище как я понимаю как раз работает на локальном хосте), посмотрю. Момент такой к моему АПИ должны будут обращаться различные клиенты (десктопное приложение) как для записи так и для скачивания файлов.