2017-01-09 16 views
1

私はBotoを初めて使用し、boto2.29.1をPythonで使用しています。S3 botoライブラリ:バケット内のキーでHEAD要求を行う方法

は、キーを反復処理、その後bucket.list()メソッドを使用してS3バケット内のすべてのキーをリストset_metadata方法

を使用して、いくつかのユーザメタデータを追加しました。しかしAPI reference

で定義されているように、ユーザメタデータを返しません。しかしbucket.get_key()リターンを使用してメタデータを取得するメタデータ

APIリファレンスは、キーにHEADリクエストを実行してメタデータを取得言います。これどうやってするの?

+0

は、私が理解するだろうがキーをフィルタリングする –

+1

新規顧客の場合は、boto3の使用をお勧めします。 ([docs for head_object](http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.head_object)) –

答えて

0

Botoには直接のリクエストはありません(少なくともv2にはありません)。 すべてのメタデータを取得する唯一の方法は、bucket.get_key()メソッドです。

あなたが唯一のキーの一部のメタデータを必要とするなら、あなたはこのような何か行うことができます:誰もどのようにすべてのキーを取得する特定のユーザメタデータとキーを代わりに取得することを指示した場合

for key in bucket.list(): 
    if want_metadata(key.name): 
     key_with_md = bucket.get_key(key.name) 
     metadata = key_with_md.get_metadata('smth') 
関連する問題