Как выбрать файл из 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)
Большое спасибо.