Estoy iniciando un script bash que tomará una ruta en S3 (como se especifica en el comando ls ) y volcará el contenido de todos los objetos de archivo en 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 cpcomando en un archivo temporal y luego cateso.
¿Alguien ha probado esto o algo similar o ya hay un comando que no encuentro que lo hace?
                    
                        bash
                                amazon-web-services
                                amazon-s3
                                aws-cli
                                
                    
                    
                        Neil C. Obremski
fuente
                
                fuente

Respuestas:
Puede lograr esto si pasa
-por destino deaws s3 cpcomando. Por ejemplo$ aws s3 cp s3://mybucket/stream.txt -,.¿Qué estás intentando 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 donefuente
aws --version:aws-cli/1.15.40 Python/3.6.5 Darwin/17.7.0 botocore/1.10.40)Si está utilizando una versión de la AWS CLI que no admite la copia en "-", también puede utilizar / dev / stdout:
También puede querer que la
--quietbandera evite que una línea de resumen como la siguiente se agregue a su salida:fuente
Puede intentar usar s3streamcat , también es compatible con los formatos bzip, gzip y xz.
Instalar con
sudo pip install s3streamcatUso:
fuente
¡Ah, ja!
https://pypi.python.org/pypi/s3cat/1.0.8
Estoy escribiendo más caracteres para satisfacer el requisito de longitud.
fuente
Si desea lograr esto usando BASH, deberá llamar a una aplicación externa como la AWS Command-Line Interface (CLI). No tiene un equivalente CAT, por lo que deberá 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 se puede recuperar en la memoria y luego enviarlo a la salida estándar.
fuente