Noté que no parece haber una opción para descargar un bucket S3 completo de la consola de administración de AWS.
¿Hay una manera fácil de agarrar todo en uno de mis cubos? Estaba pensando en hacer pública la carpeta raíz, usarla wget
para capturar todo, y luego volver a hacerlo privado, pero no sé si hay una manera más fácil.
amazon-s3
amazon-web-services
Rugbert
fuente
fuente
aws s3 sync
es lo mejor. Pero nadie señaló una opción poderosa:dryrun
. Esta opción le permite ver lo que se descargaría / cargaría de / a s3 cuando lo esté utilizandosync
. Esto es realmente útil cuando no desea sobrescribir el contenido en su bucket local o s3. Así es como se usa:aws s3 sync <source> <destination> --dryrun
lo usé todo el tiempo antes de enviar contenido nuevo a un bucket para no cargar cambios no deseados.Respuestas:
AWS CLI
Consulte la " Referencia de comandos de AWS CLI " para obtener más información.
AWS lanzó recientemente sus herramientas de línea de comandos, que funcionan de manera muy similar a boto y se pueden instalar usando
o
Una vez instalado, puede simplemente ejecutar:
Por ejemplo:
descargará todos los objetos en
mybucket
el directorio actual.Y dará salida:
Esto descargará todos sus archivos mediante una sincronización unidireccional. Será no elimine los archivos existentes en el directorio actual a menos que se especifique , y no va a cambiar o eliminar cualquier archivo en S3.
--delete
También puede hacer S3 bucket a S3 bucket, o local a S3 bucket sync.
Consulte la documentación y otros ejemplos .
Mientras que el ejemplo anterior es cómo descargar un depósito completo, también puede descargar una carpeta de forma recursiva realizando
Esto le indicará a la CLI que descargue todos los archivos y claves de carpeta de forma recursiva dentro del
PATH/TO/FOLDER
directorio dentro delBUCKETNAME
depósito.fuente
aws configure
y agregue suaccess key
ysecret access key
que se puede encontrar aquí .s3cmd
yCyberduck
, pero para míawscli
fue, con mucho, la forma más rápida de descargar ~ 70,000 archivos de mi bucket.aws s3 sync
comando no cargará nada, pero eliminará los archivos localmente si no existen en S3. Ver la documentación .Puedes usar
s3cmd
para descargar tu bucket:Hay otra herramienta que puede usar llamada
rclone
. Este es un ejemplo de código en la documentación de Rclone:fuente
He utilizado algunos métodos diferentes para copiar datos de Amazon S3 en una máquina local, incluido
s3cmd
, y con mucho, el más fácil es Cyberduck .Todo lo que necesita hacer es ingresar sus credenciales de Amazon y usar la interfaz simple para descargar, cargar, sincronizar cualquiera de sus buckets, carpetas o archivos.
fuente
Tiene muchas opciones para hacerlo, pero la mejor es usar la CLI de AWS.
Aquí hay un recorrido:
Descargue e instale AWS CLI en su máquina:
Configure AWS CLI:
Asegúrese de ingresar el acceso válido y las claves secretas , que recibió cuando creó la cuenta.
Sincronice el bucket S3 usando:
En el comando anterior, reemplace los siguientes campos:
yourbucket
>> su bucket S3 que desea descargar./local/path
>> ruta en su sistema local donde desea descargar todos los archivos.fuente
s3://
prefijo en el nombre del cubo! Conaws s3 ls
usted no necesita eses3://
prefijo pero necesita uncp
comando.Para descargar con AWS S3 CLI:
Para descargar usando código, use el SDK de AWS.
Para descargar usando GUI, use Cyberduck.
fuente
aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt"
Para Windows, S3 Browser es la forma más fácil que he encontrado. Es un excelente software y es gratuito para uso no comercial.
fuente
Si usa Visual Studio, descargue " AWS Toolkit for Visual Studio ".
Después de la instalación, vaya a Visual Studio - AWS Explorer - S3 - Su depósito - Haga doble clic
En la ventana podrá seleccionar todos los archivos. Haga clic derecho y descargue archivos.
fuente
La respuesta de @Layke es buena, pero si tiene un montón de datos y no quiere esperar para siempre, debe leer " Configuración de AWS CLI S3 ".
Los siguientes comandos le indicarán a la AWS CLI que use 1,000 subprocesos para ejecutar trabajos (cada uno un archivo pequeño o una parte de una copia multiparte) y anticipará 100,000 trabajos:
Después de ejecutar estos, puede usar el
sync
comando simple :o
En un sistema con CPU de 4 núcleos y 16 GB de RAM, para casos como el mío (archivos de 3-50 GB), la velocidad de sincronización / copia pasó de aproximadamente 9.5MiB / sa 700 + MiB / s, un aumento de velocidad de 70x sobre la configuración predeterminada.
fuente
Utilice este comando con la AWS CLI :
fuente
Otra opción que podría ayudar a algunos usuarios de OS X es Transmitir.
Es un programa FTP que también te permite conectarte a tus archivos S3. Y tiene una opción para montar cualquier almacenamiento FTP o S3 como una carpeta en el Finder, pero es solo por un tiempo limitado.
fuente
He desarrollado un poco para S3 y no he encontrado una manera simple de descargar un paquete completo.
Si desea codificar en Java, jets3t lib es fácil de usar para crear una lista de cubos e iterar sobre esa lista para descargarlos.
Primero, obtenga un conjunto de claves públicas y privadas del consulado de administración de AWS para que pueda crear un objeto de servicio S3:
Luego, obtenga una matriz de sus objetos de cubos:
Finalmente, repita esa matriz para descargar los objetos uno a la vez con:
Puse el código de conexión en un singleton seguro para subprocesos. La sintaxis de prueba / captura necesaria se ha omitido por razones obvias.
Si prefieres codificar en Python, puedes usar Boto en su lugar.
Después de mirar alrededor de BucketExplorer, " Descargar el cubo completo " puede hacer lo que quieras.
fuente
AWS sdk API solo será la mejor opción para cargar toda la carpeta y repositorio a s3 y descargar todo el paquete de s3 a nivel local.
Para cargar toda la carpeta en s3
para descargar todo el s3 bucket localmente
también puede asignar una ruta como BucketName / Path para una carpeta particular en s3 para descargar
fuente
Puede hacer esto con https://github.com/minio/mc :
mc también admite sesiones, descargas reanudables, cargas y mucho más.
mc
admite sistemas operativos Linux, OS X y Windows. Escrito en Golang y publicado bajo la versión 2.0 de Apache.fuente
Si usa Firefox con S3Fox, eso le permite seleccionar todos los archivos (shift-select primero y último) y hacer clic derecho y descargar todo ... Lo he hecho con más de 500 archivos sin problema
fuente
Cuando estoy en Windows, mi herramienta GUI preferida para esto es Cloudberry Explorer para S3., Http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx . Tiene un explorador de archivos bastante pulido, interfaz tipo ftp.
fuente
Si solo tiene archivos allí (sin subdirectorios), una solución rápida es seleccionar todos los archivos (
click
en el primero,Shift+click
en el último) y presionarEnter
oright click
y seleccionarOpen
. Para la mayoría de los archivos de datos, esto los descargará directamente a su computadora.fuente
Para agregar otra opción de GUI, utilizamos la funcionalidad S3 de WinSCP . Es muy fácil conectarse, solo requiere su clave de acceso y clave secreta en la interfaz de usuario. A continuación, puede examinar y descargar los archivos que necesite de cualquier depósito accesible, incluidas las descargas recursivas de carpetas anidadas.
Dado que puede ser un desafío eliminar el nuevo software a través de la seguridad y WinSCP es bastante frecuente, puede ser realmente beneficioso usarlo en lugar de intentar instalar una utilidad más especializada.
fuente
El usuario de Windows debe descargar S3EXPLORER desde este enlace que también tiene instrucciones de instalación: - http://s3browser.com/download.aspx
Luego proporcione sus credenciales de AWS como secretkey, accesskey y region al s3explorer, este enlace contiene instrucciones de configuración para s3explorer: Copiar Pegar enlace en el navegador: s3browser.com/s3browser-first-run.aspx
Ahora todos sus depósitos de s3 serían visibles en el panel izquierdo de s3explorer.
Simplemente seleccione el cubo y haga clic en el menú Cubos en la esquina superior izquierda, luego seleccione Descargar todos los archivos a la opción del menú. A continuación se muestra la captura de pantalla para el mismo:
Pantalla de selección de cubeta
Luego busque una carpeta para descargar el depósito en un lugar en particular
Haga clic en Aceptar y comenzará su descarga.
fuente
aws sync es la solución perfecta. No lo hace en dos sentidos ... es unidireccional desde el origen hasta el destino. Además, si tiene muchos elementos en el cubo, será una buena idea crear un punto final s3 primero para que la descarga se realice más rápido (porque la descarga no se realiza a través de Internet sino a través de la intranet) y sin cargos
fuente
Aquí hay algunas cosas para descargar todos los cubos, enumerarlos, enumerar sus contenidos.
/ ---------------------------- Métodos de extensión ------------------- ------------------ /
}
fuente
Puede obtenerlo simplemente con el comando s3cmd :
fuente
Como Neel Bhaat ha explicado en este blog , hay muchas herramientas diferentes que pueden usarse para este propósito. Algunos son provistos por AWS, donde la mayoría son herramientas de terceros. Todas estas herramientas requieren que guarde la clave y el secreto de su cuenta de AWS en la herramienta misma. Sea muy cauteloso cuando use herramientas de terceros, ya que las credenciales que guarda pueden costarle todo su valor y dejarlo muerto.
Por lo tanto, siempre recomiendo usar la AWS CLI para este propósito. Simplemente puede instalar esto desde este enlace . A continuación, ejecute el siguiente comando y guarde su clave, valores secretos en la CLI de AWS.
Y use el siguiente comando para sincronizar su AWS S3 Bucket con su máquina local. (La máquina local debe tener AWS CLI instalada)
Ejemplos:
1) Para AWS S3 a almacenamiento local
2) Del almacenamiento local a AWS S3
3) De la cubeta AWS s3 a otra cubeta
fuente
Si solo desea descargar el bucket de AWS, primero instale la AWS CLI en su máquina. En la terminal, cambie el directorio a donde desea descargar los archivos y ejecute este comando.
Si también desea sincronizar los directorios local y s3 (en caso de que haya agregado algunos archivos en la carpeta local), ejecute este comando:
fuente
AWS CLI es la mejor opción para descargar un bucket S3 completo localmente.
Instale AWS CLI.
Configure la CLI de AWS para usar las credenciales de seguridad predeterminadas y la Región de AWS predeterminada.
Para descargar todo el cubo S3, use el comando
aws s3 sync s3: // yourbucketname localpath
Referencia para usar AWS cli para diferentes servicios de AWS: https://docs.aws.amazon.com/cli/latest/reference/
fuente
Puede usar este comando de AWS cli para descargar todo el contenido del depósito S3 a la carpeta local
Si ves un error como este
--no-verificar-ssl (booleano)
De manera predeterminada, la CLI de AWS usa SSL cuando se comunica con los servicios de AWS. Para cada conexión SSL, la AWS CLI verificará los certificados SSL. Esta opción anula el comportamiento predeterminado de verificar los certificados SSL. referencia
Use esta etiqueta con el comando --no-verificar-ssl
fuente
s3 sync
está cubierto anteriormente varias veces ya. + Sugerir un uso de--no-verify-ssl
sin explicar sus consecuencias de seguridad es un delito.Si el cubo es bastante grande, hay un comando llamado
s4cmd
que realiza conexiones paralelas y mejora el tiempo de descarga:Para instalarlo en Debian como
Si tienes pip:
Leerá el
~/.s3cfg
archivo si está presente (si no se instalas3cmd
y ejecutas3cmd --configure
) o puede especificar--access-key=ACCESS_KEY --secret-key=SECRET_KEY
en el comando.El cli es similar a
s3cmd
. En su caso,sync
se recomienda a ya que puede cancelar la descarga e iniciarla nuevamente sin tener que volver a descargar los archivos.Tenga cuidado si descarga una gran cantidad de datos (> 1 TB), esto puede afectar su factura, calcule primero cuál será el costo
fuente
Como dijo @layke, es la mejor práctica descargar el archivo desde el cli S3, es seguro y protegido. Pero en algunos casos, las personas necesitan usar wget para descargar el archivo y aquí está la solución
Esto presignará obtendrá una URL pública temporal que puede usar para descargar contenido de S3 usando presign_url, en su caso usando wget o cualquier otro cliente de descarga.
fuente
Prueba este comando:
aws s3 sync yourBucketnameDirectory yourLocalDirectory
Por ejemplo, si el nombre de su depósito es
myBucket
y el directorio local esc:\local
, entonces:aws s3 sync s3://myBucket c:\local
Para obtener más información sobre awscli, consulte esta instalación de aws cli
fuente