instalar how descargar cli aws bash amazon-s3 aws-cli

how - ¿Cómo usar AWS S3 CLI para volcar archivos a stdout en BASH?



instalar aws cli (5)

Estoy comenzando un script bash que tomará una ruta en S3 (como se especifica al comando ls ) y volcará el contenido de todos los objetos del archivo a stdout . Básicamente me gustaría replicar cat /path/to/files/* excepto para S3, por ejemplo s3cat ''/bucket/path/to/files/*'' . Mi primera inclinación al mirar las opciones es usar el comando cp en un archivo temporal y luego hacerlo con eso.

¿Alguien ha intentado esto o similar o ya hay un comando que no estoy encontrando que lo hace?


volcar el contenido de todos los objetos de archivo a stdout.

Puede hacerlo si pasa - para el destino del comando aws s3 cp . Por ejemplo, $ aws s3 cp s3://mybucket/stream.txt - .

Lo que estás tratando de hacer es algo como esto? ::

#!/bin/bash BUCKET=YOUR-BUCKET-NAME for key in `aws s3api list-objects --bucket $BUCKET --prefix bucket/path/to/files/ | jq -r ''.Contents[].Key''` do echo $key aws s3 cp s3://$BUCKET/$key - | md5sum done



Puede intentar usar s3streamcat , también es compatible con los formatos bzip, gzip y xz.

Instalar con

sudo pip install s3streamcat

Uso:

s3streamcat s3://bucketname/dir/file_path s3streamcat s3://bucketname/dir/file_path | more s3streamcat s3://bucketname/dir/file_path | grep something


Si desea lograr esto usando BASH, tendrá que llamar a una aplicación externa como la interfaz de línea de comandos de AWS (CLI). No tiene un equivalente CAT, por lo que necesitaría copiar el archivo localmente y luego CAT.

Alternativamente, puede usar / escribir una aplicación que llame directamente al AWS SDK, que está disponible para lenguajes como Python, PHP, Java. Al usar el SDK, el contenido del archivo puede recuperarse en la memoria y luego enviarse a stdout.


Si está utilizando una versión de la CLI de AWS que no admite la copia en "-" también puede usar / dev / stdout:

$ aws s3 cp --quiet s3://mybucket/stream.txt /dev/stdout

También puede querer el --quiet para evitar que se --quiet a su salida una línea de resumen como la siguiente:

descargar: s3: //mybucket/stream.txt a ../../dev/stdout