Baixando pastas do aws s3, cp ou sync?


105

Se eu quiser baixar todo o conteúdo de um diretório do S3 para o meu PC local, qual comando devo usar cp ou sync?

Qualquer ajuda seria muito apreciada.

Por exemplo,

se eu quiser baixar todo o conteúdo "desta pasta" para a minha área de trabalho, será que fica assim?

 aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop

Respostas:


183

Usar a aws s3 cppartir da AWS Command-Line Interface (CLI) exigirá o --recursiveparâmetro para copiar vários arquivos.

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

O aws s3 synccomando irá, por padrão, copiar um diretório inteiro. Ele apenas copiará arquivos novos / modificados.

aws s3 sync s3://mybucket/dir localdir

Apenas experimente para obter o resultado desejado.

Documentação:


3
Levei alguns minutos para descobrir onde conseguir o aws cli. Aqui está: aws.amazon.com/cli
Bjørn Stenfeldt

@dnafication Por favor, crie uma nova pergunta ao invés de fazer uma pergunta em um comentário sobre uma pergunta antiga.
John Rotenstein,

aws s3 cp s3://myBucket/dir localdir --recursive. Isso funciona como um encanto. Se o sinalizador --recursive for ignorado, ele gerará um erro bastante inútil:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
Siddhartha

Mas se o arquivo compactado for de tamanho grande em GBs, qual seria a recomendação?
Kanagavelu Sugumar

@KanagaveluSugumar Por favor, crie uma nova pergunta em vez de fazer um comentário sobre uma pergunta antiga.
John Rotenstein

3

Caso necessite utilizar outro perfil, principalmente conta cruzada. você precisa adicionar o perfil no arquivo de configuração

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

e então se você estiver acessando apenas um único arquivo

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


1

Caso queira fazer download de um único arquivo, você pode tentar o seguinte comando:

aws s3 cp s3://bucket/filename /path/to/dest/folder

0

Acabei de usar a versão 2 do AWS CLI. Para a opção s3, há também uma opção --dryrun agora para mostrar o que vai acontecer:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.