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 .