Задать вопрос
Eugene-Usachev
@Eugene-Usachev

Как правильно использовать S3 хранилища, и на сколько моя идея верна?

Решил разобраться с S3 хранилищами. Выбрал MinIO, нашёл коннектор и пошёл читать гайды. Они или противоречат друг другу, или имеют комментарии из разряда "хватит учить людей плохому". Сейчас в голове "каша", поэтому хочу попросить проверить ниже описанную архитектуру на "хороший тон".

1 - В СУБД хранятся права доступа к файлам и пути к ним в MinIO. В MinIO хранятся только файлы (в их путях никакой информации не храниться).

Тут же возникает вопрос, стоит ли создавать какие либо ID для файлов, или их путей достаточно?

2 - Когда сайт загружается, клиентское приложение отправляет запрос к серверу. Сервер проверяет права доступа и возвращает временную ссылку на файл в MinIO. Клиентское приложение использует временную ссылку.

3 - Временные ссылки не кэшируются и не хранятся, так как переиспользование ссылок может привести к ситуации, когда пользователь получит ссылку за бесконечно малую до инвалидации и не сможет получить файл. Соответственно, на каждый запрос создаётся своя временная ссылка.

Также есть вопросы о масштабируемости. Например, следует ли мне создавать бакеты на регионы? Или свой MinIO сервер на регион? Какая практика будет лучшей (даже не из предложенных мной)?
  • Вопрос задан
  • 286 просмотров
Подписаться 3 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
3vi1_0n3
@3vi1_0n3
Могу частично ответить по поводу путей. Многие понимают S3 как файловое хранилище, тогда как это объектное хранилище по сути, ключ-значение. Ключ - это то, что выглядит как путь, но на самом деле это не путь. И так совпало, что значение это обычно контейнер с содержимым, который представлен как файл. Поэтому путь и есть ID, и при этом значение нельзя поменять, его можно либо взять, либо положить. Делать какие-то дополнительные ID по этой причине обычно не надо, потому что ключ (за счет представления как путь) всегда является уникальным.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы