У меня возникли проблемы при проектировании структуры моей корзины S3.
Мое заявление
У меня есть несколько типов (ролей) пользователей, и у каждого пользователя есть разные типы PDF-документов, которые будут загружены в S3. Пользователь будет видеть каждый документ на своей панели инструментов и должен иметь возможность просматривать PDF-файл из приложения (в идеале, открыв новую вкладку вместо загрузки). Ниже приведен пример:
Роли пользователей
Пользовательские документы (для role_a)
Пользовательские документы (для role_b)
У каждого пользователя может быть ноль или более документов.
Мои вопросы:





На самом деле нет такой вещи, как вложенная структура. Файлы Al в s3 хранятся в виде корзины и ключа, где ключ - это структура, часть, которую вы считаете каталогами. Вы можете подтвердить это, сохранив один документ в корзине, например, /foo/bar/doc.pdf. затем удалите этот файл и посмотрите на структуру в s3. Foo и bar исчезнут.
Итак, вы можете делать что-то разными способами, например:
Ведро: mybucket
Ключ: /role_a/document_type_a/0888a5ce.pdf
Плоская структура хранения Самая простая структура была бы полностью:
Вы можете выбрать для каждого объекта префикс идентификатора пользователя, который полезен для отладки или попытки восстановить контент в случае сбоя базы данных, но нет особого преимущества в производительности, если вы правильно ссылаетесь на базу данных для списка пользовательских файлов.