web-dev-qa-db-ja.com

boto3 list_objectsとlist_objects_v2の違いは何ですか?

python __boto3_を使用して)でAmazon s3バケット内のオブジェクトを一覧表示しようとしています。

_boto3_には、バケット内のオブジェクトをリストするための2つの関数list_objects()list_objects_v2()があるようです。

2つの違いは何ですか?一方を使用する利点は何ですか?

20
tamjd1

並べて比較。

list_objects():

response = client.list_objects(
    Bucket='string',
    Delimiter='string',
    EncodingType='url',
    #Marker to list continuous page
    Marker='string',
    MaxKeys=123,
    Prefix='string'
)

list_objects_v2()

response = client.list_objects_v2(
    Bucket='string',
    Delimiter='string',
    EncodingType='url',
    MaxKeys=123,
    Prefix='string',
    # Replace marker to list continuous page
    ContinuationToken='string',

    # set to True to fetch key owner info. Default is False.
    FetchOwner=True|False,

    # This is similar to the Marker in list_object()
    StartAfter='string'
)

追加された機能。 1ページあたり1000個のキーのリスト制限があるため、マーカーを使用して複数のページをリストするのは頭痛の種になる可能性があります。論理的には、正常に処理された最後のキーを追跡する必要があります。 ContinuationTokenを使用すると、最後のキーを知る必要はありません。応答でNextContinuationTokenの存在を確認するだけです。次のページを取得するために最後のキーを処理することなく、1000個のキーの乗算を処理する並列プロセスを生成できます。

24
mootmoot