получить часть имени файла из каждого файла в списке в Java - PullRequest
0 голосов
/ 28 ноября 2018

Я загружаю файлы в списке в S3, используя uploadFileList() Так что этот API принимает список (записи) в качестве параметра, как показано ниже

MultipleFileUpload xfer = tm.uploadFileList(bucketName, "TEST",new File(fileLocation), records);

Записи в списке, подобные этому

21564_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz
21224_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz
20780_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz
20407_114762642_ANA_9ECB7C98-C2D7-428A-B6AD-7A6C62E1A7BE_App.xml.gz

На данный момент все работает нормально.Теперь мне нужно добавить префикс в API, так как первые четыре цифры имени файла, такие как 21564, будут префиксом для первого файла. Поэтому, чтобы сделать это, я должен перебрать список и добавить файл за файлом, но это будет медленновниз по загрузке в S3 сравните с загрузочным списком.

Есть ли способ добавить префикс при загрузке списка в S3, и файлы в списке случайные, но шаблон исправлен?

1 Ответ

0 голосов
/ 28 ноября 2018

См. Документацию S3 о ключах объекта .Поскольку сегменты S3 плоские (не иерархия файловой системы), вы можете указать Amazon ключевой префикс, который будет использоваться для загружаемых файлов, сгруппировав их все под одним и тем же префиксом.Например, я мог бы предоставить «MovieReviews /» в качестве префикса для списка файлов, и результирующие ключи объекта в S3 начались бы с этого.Некоторые инструменты понимают косую черту и позволяют вам просматривать корзину S3 как иерархию каталогов.

В вашем случае, если файлы должны использовать первые N символов в качестве ключа группировки, вы можете загружать их партиями с помощьюпервая группировка по этой подстроке, например fileList.stream().collect(Collectors.groupingBy(s -> s.substring(0, N)))

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