下面的代碼將檔案從 S3 存盤桶下載到本地目錄。
import boto3
s3_client = boto3.client('s3')
response = s3_client.list_objects_v2(Bucket='MY-BUCKET', Prefix='foo/')
objects = sorted(response['Contents'], key=lambda obj: obj['LastModified'])
## Latest object
latest_object = objects[-1]['Key']
filename = latest_object[latest_object.rfind('/') 1:] # Remove path
# Download it to current directory
s3_client.download_file('MY-BUCKET', latest_object, filename)
該list_objects_v2命令最多只回傳 1000 個物件。我知道分頁器可能是一個解決方案,因為正在使用的存盤桶有更多的物件。這如何在上面實作?
uj5u.com熱心網友回復:
有一個可以使用的內置類class S3.Paginator.ListObjectsV2
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Paginator.ListObjectsV2
這是如何將分頁器添加到當前代碼中的方法。
import boto3
s3_client = boto3.client('s3')
# Add paginator
paginator = s3_client.get_paginator('list_objects_v2')
# Use pagination
response = paginator.paginate(Bucket='MY-BUCKET', Prefix='foo/')
data = []
for r in response:
data = [c for c in r['Contents']]
print(data)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/511514.html
上一篇:AWSIAMS3下載策略
