2016-10-05 4 views
0

私はS3オブジェクトにカスタムメタデータを保存しました(メタx-amzメタデータ記述でファイルの記述を保存しました)。S3オブジェクトのメタデータ(NodeJS API)を取得するための最速の方法

私はメタオブジェクトを含むS3オブジェクトのプロパティを持つファイルリストを取得したいと考えています。

私はs3.listObjectsV2が私を助けることができると思ったが、この方法では、メタデータを取得することができないようです(公式ドキュメントhereを参照)

私はgetObjectsでそれらmedataを取得できることを見たが、それはたくさんに数が増加します要求の待ち時間とに基づいて決定される。

オブジェクトリストのメタデータを一括して取得することはありますか?

ありがとう、 ロメイン。

答えて

0

あなたはHEAD操作はオブジェクト自体を返さずにオブジェクトからメタデータを取得し

をしたいまさにんaws s3api head-objectを必要としています。この操作は、オブジェクトのメタデータにのみ関心がある場合に便利です。 HEADを使用するには、オブジェクトへのREADアクセス権が必要です。

aws s3api head-object --bucket <mybucket> --key <value> 

それはあなたが他の方法とのことcuppleする必要があります複数のアイテムのために呼び出す必要がある場合は、この方法は、一度キーごとに呼び出されhttp://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#headObject-property

を参照してください、またnodeJSのAPIで利用可能である、と言うことができます例として、あなたはあなたのバケツからすべてのファイル

aws s3 ls --recursive <mybucket> \ 
| grep ".csv$" | cut -c 32- \ 
| xargs -I {} aws s3api head-object --bucket <mybucket> --key {} 

コマンドリストの最初の部分を実行します、あなたは、特定の拡張のためにのみ目をgrepし、あなたのバケツからすべてのCSVファイルのすべてのメタデータを必要とします文字を取り除いて、キーだけを取得し、このキーをヘッドオブジェクトコマンドの引数として渡します。

+0

こんにちは!ありがとう。この方法をバルクモードで使用することは可能ですか?答えがノーならば、私はたくさんの電話をしなければならないでしょう。 –

+0

こんにちは、いいえあなたは一括して呼び出すことはできません、それは指定されたキー(それは理にかなっています)で動作します。バルクでコールする必要がある場合は、まずコールを実行するすべての要素を選択する必要があります –

関連する問題