AWS CLI: скопировать определенное количество файлов из каждого сегмента в локальный - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь загрузить первые (просто для примера) 10 файлов из каждого сегмента. Я новичок в этом, я прочитал документацию aws cli, но ничего не смог найти по этому поводу.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Нет единой команды, которая может это сделать.

Однако вы можете объединить несколько команд AWS CLI вместе.

Например, эти команды будут LIST первые 10 объектов:

for bucket in $(aws s3api list-buckets --query Buckets[].[Name] --output text);
do
  echo Bucket: $bucket;
  aws s3api list-objects --query Contents[0:10].[Key] --bucket $bucket --output text;
done;

Сначала он получает список сегментов, а затем для каждого сегмента перечисляет имена первых 10 файлов.

Вы можете изменить его, добавив другой for, который будет вызывать aws s3 cp с именем файла для загрузки объектов.

Вы также должны рассмотреть, что вы хотели бы сделать с конфликтом имен файлов (например, если появляется файл с тем же именем) в первых 10 файлах более чем одного сегмента).

0 голосов
/ 17 февраля 2020

У awscli есть два широких набора функций для S3: aws s3 и aws s3api. Первый - более высокий уровень (например, включает функции syn c), в то время как нижний сопоставляется с базовыми API S3.

Вы можете написать простое решение, которое использует aws s3api list-objects --max-items 10, чтобы получить список не более 10 объектов из корзины, а затем копирует их один за другим.

...