Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use AWS S3 CLI to dump files to stdout in BASH?

I'm starting a bash script which will take a path in S3 (as specified to the ls command) and dump the contents of all of the file objects to stdout. Essentially I'd like to replicate cat /path/to/files/* except for S3, e.g. s3cat '/bucket/path/to/files/*'. My first inclination looking at the options is to use the cp command to a temporary file and then cat that.

Has anyone tried this or similar or is there already a command I'm not finding which does it?

like image 962
Neil C. Obremski Avatar asked Feb 04 '15 20:02

Neil C. Obremski


People also ask

How do I get files from AWS command line S3?

You can use cp to copy the files from an s3 bucket to your local system. Use the following command: $ aws s3 cp s3://bucket/folder/file.txt .


1 Answers

dump the contents of all of the file objects to stdout.

You can accomplish this if you pass - for destination of aws s3 cp command. For example, $ aws s3 cp s3://mybucket/stream.txt -.

What you're trying to do is something like this? ::

#!/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 
like image 156
quiver Avatar answered Sep 21 '22 06:09

quiver