Скачивание папок с aws s3, cp или sync?

116

Если я хочу загрузить все содержимое каталога на S3 на свой локальный компьютер, какую команду мне следует использовать cp или sync?

Любая помощь будет высоко ценится.

Например,

если я захочу загрузить все содержимое «этой папки» на свой рабочий стол, будет ли это выглядеть так?

 aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop
BFlint
источник

Ответы:

201

Для использования aws s3 cpиз интерфейса командной строки (CLI) AWS потребуется --recursiveпараметр для копирования нескольких файлов.

aws s3 cp s3://myBucket/dir localdir --recursive

По aws s3 syncумолчанию команда скопирует весь каталог. Он будет копировать только новые / измененные файлы.

aws s3 sync s3://mybucket/dir localdir

Просто экспериментируйте, чтобы получить желаемый результат.

Документация:

Джон Ротенштейн
источник
3
Мне потребовалось несколько минут, чтобы понять, где взять aws cli. Вот он: aws.amazon.com/cli
Бьёрн Стенфельдт
@dnafication Пожалуйста, создайте новый вопрос вместо того, чтобы задавать вопрос в комментарии к старому вопросу.
Джон Ротенштейн
1
aws s3 cp s3://myBucket/dir localdir --recursive. Это работает как шарм. Если пропустить флаг --recursive, это вызывает довольно бесполезную ошибку:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
Siddhartha
Но если файл single zip большого размера в ГБ, какова будет рекомендация?
Канагавелу Сугумар,
@KanagaveluSugumar Создайте новый вопрос, а не задавайте его в комментариях к старому вопросу.
Джон Ротенштейн
4

Если вам нужно использовать другой профиль, особенно кросс-аккаунт. вам нужно добавить профиль в конфигурационный файл

[profile profileName]
region = us-east-1
role_arn = arn:aws:iam::XXX:role/XXXX
source_profile = default

а затем, если вы обращаетесь только к одному файлу

aws s3 cp s3://crossAccountBucket/dir localdir --profile profileName

myPavi
источник
2

Если вы хотите загрузить один файл, вы можете попробовать следующую команду:

aws s3 cp s3://bucket/filename /path/to/dest/folder
gCoh
источник
1

Только что использовал версию 2 интерфейса командной строки AWS. Для параметра s3 теперь также есть параметр --dryrun, чтобы показать вам, что произойдет:

aws s3 --dryrun cp s3://bucket/filename /path/to/dest/folder --recursive

Марк Дуби
источник