Невозможно использовать подстановочные знаки имени файла с s4cmd при попытке скопировать или синхронизировать с Amazon S3

Я пытаюсь использовать s4cmd для копирования файлов из корзины AWS S3 с использованием подстановочных знаков, которые предположительно поддерживаются.

Например, я хотел синхронизировать все файлы журнала AWS S3, начинающиеся с 2017-03-12, с моим локальным текущим каталогом:

s4cmd sync s3://myapp-logs/prod/2017-03-12-19* .

что привело к копированию всех файлов и явному игнорированию подстановочного знака:

s3://myapp-logs/prod/2015-10-08-19-24-42-92BBBE9DA93917D1 => ./prod/2015-10-08-19-24-42-92BBBE9DA93917D1
s3://myapp-logs/prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1 => ./prod/2015-10-08-19-30-09-BE8D5466FBB5DFD1
...

Я могу воспроизвести этот сбой независимо от формата моего подстановочного знака.

Единственный раз, когда подстановочные знаки работают должным образом, это когда я использую команду cp, например:

s4cmd cp s3://myapp-logs/prod/2017-03-12-19* // Note that cp doesn't support copying to a local directory

or

s4cmd cp s3://mybucket/mystuff/N*.jpg s3://mybuckettest/

person Howiecamp    schedule 12.03.2017    source источник
comment
Почему s4cmd? Разве вы не можете добиться того же с помощью aws s3 CLI?   -  person helloV    schedule 13.03.2017


Ответы (1)


Разве вы не можете использовать aws s3 CLI?

aws s3 sync s3://myapp-logs . --exclude "*" --include "*prod/2017-03-12-19*"

должно сработать. Если он не видит use-of-exclude-and-include-filters и измените команду.

person helloV    schedule 13.03.2017
comment
Причина, по которой я использую s4cmd (и s3cmd) вместо aws s3 cli в настоящее время, заключается в том, что s4cmd предлагает некоторые дополнительные функции, такие как улучшенная синхронизация (через s4cmd dsync), и я пытаюсь использовать меньшее количество инструментов. Однако вы напомнили мне, что aws s3 реализует функции, подобные подстановочным знакам, с помощью фильтров, так что спасибо! Кстати, aws s3 sync s3://myapp-logs . --exclude "*" --include "prod/2017-03-12-19*" должно быть эквивалентно aws s3 sync s3://myapp-logs/prod . --exclude "*" --include "2017-03-12-19*"? - person Howiecamp; 13.03.2017