Как выбрать файл из aws s3 с помощью дикого символа

У меня есть много файлов в s3 bucket, и я хочу скопировать те файлы, у которых есть дата начала 2012 года. Эта ниже команда копирует весь файл.

aws s3 cp s3://bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in --recursive  --include "201502_nts_*.xlsx"

Ответ 1

Вы можете добавить флаг "-exclude" перед вашим фильтром включения.

CLI AWS принимает фильтр "--include", чтобы включить его в уже существующий поиск. Поскольку все файлы возвращаются, сначала необходимо исключить все файлы, прежде чем включать 2015 *.xlsx.

Если вам нужны файлы только с форматом "201502_nts _ *. xlsx", вы можете запустить aws s3 cp s3://bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in --recursive --exclude * --include "201502_nts_*.xlsx"

Ответ 2

Мне нужно было добавить кавычки вокруг подстановочного символа --exclude *, чтобы он выглядел так:

aws s3 cp s3://bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in --recursive --exclude "*" --include "201502_nts_*.xlsx"

Ответ 3

После многих проверок и получения помощи от bsnchan я могу использовать команду exclude и include в aws s3 cli. Убедитесь, что вы правильно помещаете пробелы.

для копирования определенного файла:

aws s3 cp s3://itx-agj-cons-ww-bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in  --recursive --exclude "*" --include "*%mth_cd%_%source%_all.xlsx"

(Примечание: mth_cd - это параметр, используемый в файле bat)

Для проверки существования файла.

aws s3 ls s3://itx-agj-cons-ww-bp-dev/bp_source_input/ --recursive | FINDSTR  "201502_nts_.*.xlsx"

(Примечание: windows cli, для unix это будет grep)

Большое спасибо.