1. ホーム
  2. bash

[解決済み] BASHでAWS S3 CLIを使用して標準出力にファイルをダンプするには?

2022-10-09 03:14:11

質問

S3内のパス(S3に指定された)を取得するbashスクリプトを開始しています。 ls コマンドに指定された)パスを取り、すべてのファイルオブジェクトの内容を stdout . 基本的には、私は cat /path/to/files/* を複製したいのですが、S3 を除いて、例えば s3cat '/bucket/path/to/files/*' . このオプションを見て最初に思ったのは cp コマンドで一時ファイルを作成し、その後 cat ということになります。

誰かこれか似たようなことを試したことがありますか、それとも私が見つけていないだけで、これを行うコマンドが既にあるのでしょうか?

どのように解決するのですか?

すべてのファイルオブジェクトの内容を標準出力にダンプします。

を渡すと、これを実現することができます。 - を渡すと実現できます。 aws s3 cp コマンドで指定します。 例えば $ aws s3 cp s3://mybucket/stream.txt - .

やろうとしていることは、こんな感じでしょうか ::

#!/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