Назад | Перейти на главную страницу

aws s3 cp файлы из корня подкаталога без получения подпапок? Powershell

s3://bucketname/yyyymmdd/foo/bar У меня есть файлы в корневом каталоге, и я хочу их скопировать. Я не хочу копировать подкаталоги в корень (foo). Я пробую это в PowerShell:

aws s3 cp "s3://bucketname" . --recursive --exclude "*/foo/*/*" --include "foo/*.*"  --dryrun

или

aws s3 cp "s3://bucketname" . --recursive --exclude "yy*/foo/*/*" --include "foo/*.*"  --dryrun

Я получаю файлы в foo, но также храню некоторые файлы, например s3://bucketname/otherdirectory/otherfiles. Я пробовал несколько альтернатив: здесь перечислены КАЖДЫЙ файл в ведре:

aws s3 cp "s3://bucketname" . --recursive --exclude "*/foo/*/*" --include "*/foo/*.*"  --dryrun

Моя интуиция говорит, что так должно быть

aws s3 cp source destination --recursive --exclude "*" --include "*/foo/*.*" --dryrun

смысл /directory/*anyfilename.*anyextention но это дает мне каждый файл рекурсивно ниже s3://bucketname/yyyymmdd/foo/.

Я пытаюсь создать однострочник без шаблонов foreach, но, возможно, мне придется прибегнуть к этому.

Догадаться:

(get-s3object -bucket bucketname | where{$_.key -like "*/foo/*"} | where{$_.key -notlike "*/foo/*/*"}).key  

Это список только файлов в foo без вложенных папок или файлов вложенных папок. Это происходит независимо от значения ГГГГММДД для сегмента. Теперь я могу передать это в read-s3object, чтобы получить файлы.

get-s3object -bucket bucketname | where{$_.key -like "*/foo/*"} | where{$_.key -notlike "*/foo/*/*"} | read-s3object -folder .