Хранилище для pdf, docx, jpg

У меня есть приложение с монолитной архитектурой и с PostgreSQL в качестве основного хранилища. Есть два образа докеров, один для db и один для сервера приложений. Существует высокая вероятность того, что в ближайшем будущем приложение будет разделено на несколько сервисов, и оно перейдет на микросервисную архитектуру. Также высока вероятность того, что решение будет частью частного облака. В настоящее время есть требования для чтения/хранения различных файлов через приложение, таких как: pdf, jpg, docx и т. д. И я нахожусь на распутье, что будет лучше выбрать в текущей ситуации в качестве хранилища файлов.

Пока вижу несколько вариантов:

  1. Сервер хранения объектов (например: MinIO, совместимый с облачным хранилищем Amazon S3)
  2. PostgreSQL (для хранения файлов как BLOB)
  3. Файловая система (для хранения файлов на хост-компьютере док-контейнеров)

Я читал несколько сообщений, в которых решение БД сравнивалось с файловой системой, но я не нашел никакого сравнения, когда учитывался какой-либо сервер хранения объектов.

Пожалуйста, посоветуйте, какой вариант лучше выбрать, или укажите мне какой-нибудь сравнительный пост, где это уже спрашивали.


person fashuser    schedule 16.07.2021    source источник


Ответы (1)


Упомянутое вами будущее направление выиграет от использования хранилища как службы, где несколько контейнеров могут обращаться к одним и тем же файлам. Это даст гибкость, если вам понадобятся операции записи/обновления в будущем.

Несколько моментов для компромисса:
Если вы выберете базу данных, вам придется написать этот сервис самостоятельно (1), и он будет настраиваемым, а не широко распространенным в Интернете, как S3 (2). В отличие от этого, если вы разрешите прямой SQL-доступ к базе данных для файлов, это сделает ваше решение хрупким из-за отсутствия инкапсуляции (3). Хранилище BLOB-объектов в базе данных работает (операции ACID), но я видел, как управление хранилищем в базе данных становится проблемой для администраторов баз данных (4).

person S2L    schedule 16.07.2021