¿Descarga carpetas desde aws s3, cp o sync?

108

Si quiero descargar todo el contenido de un directorio en S3 a mi PC local, ¿qué comando debo usar cp o sync?

Cualquier ayuda sería muy apreciada.

Por ejemplo,

si quiero descargar todo el contenido de "esta carpeta" en mi escritorio, ¿se vería así?

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

Respuestas:

186

El uso aws s3 cpdesde la AWS Command-Line Interface (CLI) requerirá el --recursiveparámetro para copiar varios archivos.

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

El aws s3 synccomando, por defecto, copiará un directorio completo. Solo copiará archivos nuevos / modificados.

aws s3 sync s3://mybucket/dir localdir

Experimente para obtener el resultado que desea.

Documentación:

John Rotenstein
fuente
3
Me tomó unos minutos averiguar dónde conseguir aws cli. Aquí está: aws.amazon.com/cli
Bjørn Stenfeldt
@dnafication Cree una nueva pregunta en lugar de hacer una pregunta en un comentario sobre una pregunta anterior.
John Rotenstein
aws s3 cp s3://myBucket/dir localdir --recursive. Esto funciona a las mil maravillas. Si se omite la bandera --recursive, arroja un error bastante inútil:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
Siddhartha
Pero si el archivo solo tiene un tamaño grande en GB, ¿cuál sería la recomendación?
Kanagavelu Sugumar
@KanagaveluSugumar Cree una nueva pregunta en lugar de hacer un comentario sobre una pregunta anterior.
John Rotenstein
4

En caso de que necesite utilizar otro perfil, especialmente cuenta cruzada. necesitas agregar el perfil en el archivo de configuración

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

y luego, si accede a un solo archivo

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

myPavi
fuente
2

En el caso de que desee descargar un solo archivo, puede probar el siguiente comando:

aws s3 cp s3://bucket/filename /path/to/dest/folder
gCoh
fuente
0

Acabo de utilizar la versión 2 de la AWS CLI. Para la opción s3, también hay una opción --dryrun ahora para mostrarle lo que sucederá:

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

Marc Duby
fuente