Saltar al contenido

Cómo descargar archivos del servicio s3 a la carpeta local

Solución:

Dado que esta pregunta es uno de los principales resultados de Google para “descargar archivos s3 de powershell”, responderé la pregunta en el título (aunque el texto de la pregunta real es diferente):

Read-S3Object -BucketName "my-s3-bucket" -KeyPrefix "path/to/directory" -Folder .

Puede que necesites llamar Set-AWSCredentials si no es un cubo público.

Si ha instalado el módulo AWS PowerShell, no lo ha cargado correctamente en su sesión actual. Identificamos esto como el problema porque el error que especificó significa que no se puede encontrar el cmdlet dado.

Primero, verifique que el módulo esté instalado, mediante cualquiera de las siguientes opciones:

Cargue el módulo en una sesión existente: (PowerShell v3 y v4):

De la documentación:

En PowerShell 4.0 y versiones posteriores, Import-Module también busca módulos instalados en la carpeta Archivos de programa, por lo que no es necesario proporcionar la ruta completa al módulo. Puede ejecutar el siguiente comando para importar el módulo AWSPowerShell. En PowerShell 3.0 y versiones posteriores, la ejecución de un cmdlet en el módulo también importa automáticamente un módulo en su sesión.

Para verificar la instalación correcta, agregue el siguiente comando al comienzo de su secuencia de comandos:

PS C:> Import-Module AWSPowerShell

Cargue el módulo en una sesión existente: (PowerShell v2):

Para verificar la instalación correcta, agregue el siguiente comando al comienzo de su secuencia de comandos:

PS C:> Import-Module "C:Program Files (x86)AWS ToolsPowerShellAWSPowerShellAWSPowerShell.psd1"

Abra una nueva sesión con Windows PowerShell para AWS Desktop Shortcut:

Se agrega un acceso directo a su escritorio que inicia PowerShell con el módulo correcto cargado en la sesión. Si su instalación fue exitosa, este acceso directo debe estar presente y también debe cargar correctamente el módulo AWS PowerShell sin esfuerzo adicional por su parte.

De la documentación:

El instalador crea un grupo de menú de inicio llamado Amazon Web Services, que contiene un acceso directo llamado Windows PowerShell para AWS. Para PowerShell 2.0, este acceso directo importa automáticamente el módulo AWSPowerShell y luego ejecuta el cmdlet Initialize-AWSDefaults. Para PowerShell 3.0, el módulo AWSPowerShell se carga automáticamente cada vez que ejecuta un cmdlet de AWS. Entonces, para PowerShell 3.0, el acceso directo creado por el instalador solo ejecuta el cmdlet Initialize-AWSDefaults. Para obtener más información sobre Initialize-AWSDefaults, consulte Uso de credenciales de AWS.

Otras lecturas:

  • Documentación de AWS PowerShell: descargue e instale las herramientas de AWS para Windows PowerShell
  • Documentación de AWS PowerShell: configuración de las herramientas de AWS para Windows PowerShell

Similar al ejemplo de Will, si desea descargar todo el contenido de una “carpeta” manteniendo la estructura del directorio, intente:

Get-S3Object -BucketName "my-bucket" -KeyPrefix "path/to/directory" | Read-S3Object -Folder .

MS doc en https://docs.aws.amazon.com/powershell/latest/reference/items/Read-S3Object.html proporciona ejemplos con un filtrado más elegante.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *