Список объектов из корзины Amazon S3 - PullRequest
0 голосов
/ 22 апреля 2020

Я планирую сохранить набор пользовательских файлов в S3 и подумываю об организации файлов с префиксами, аналогичными приведенным ниже, в одном user-data ведре.

unique-user-guid/images/image1.jpg
unique-user-guid/images/image1.jpg
...
unique-user-guid/docs/file1.pdf
unique-user-guid/docs/file2.txt
...

Я надеюсь использовать код, подобный приведенному ниже, для извлечения всех объектов, связанных с указанным c руководством пользователя.

    ListObjectsV2Request request = new ListObjectsV2Request();
    request.setBucketName("user-bucket");
    request.setPrefix("unique-user-guid/");
    ListObjectsV2Result result = s3Client.listObjectsV2(request);

Это эффективный способ организации пользовательских 1011 * данных и списков объектов по запросу? Я ожидаю около 500 тысяч уникальных пользователей в системе.

1 Ответ

2 голосов
/ 24 апреля 2020

Ваш подход выглядит вполне выполнимым .

Существует ограничение в 1000 возвращаемых объектов за ListObjects() вызов, поэтому вам может понадобиться разбиение на страницы , чтобы получить больше результатов. Но ваши цифры предполагают, что это будет редко.

Использование setPrefix довольно ограничит набор результатов и должно быть довольно эффективным из-за того, что Amazon S3 хранит свои index.

Альтернативным подходом было бы хранить объекты под уникальным идентификатором (GUID), а затем использовать базу данных для отслеживания объектов, имен, метаданных, владельца и т. д. c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...