Jee*_*aim 0 amazon-s3 amazon-web-services boto3
使用 list_objects_v2 时
s3client.list_objects_v2(Bucket=bucket_name, StartAfter=starts_after)
从 boto3 包中,我注意到如果我使用存储桶中文件夹内的密钥,例如
桶 - 'some_bucket'
键 - 'adb/dcvf/staging0000.txt'
然后 StartAfter 无法正常工作,它返回整组键。
但是,如果密钥直接位于存储桶中,没有任何文件夹(例如 ),则 StartAfter 可以正常工作。
桶 - 'some_bucket'
键 - 'staging0000.txt'
这是一个已知问题吗?是否有解决方法
版本2:
看来您的要求是获取在特定 key timewise 之后添加的对象的 Key 列表。
这不适合该StartAfter参数的用途,该参数仅列出按字母顺序排列在给定字符串之后的键。
相反,您需要编写一个程序来获取对象列表,然后确定所需的键,例如:
import boto3
client=boto3.client('s3',region_name='ap-southeast-2')
# Obtain a list of objects in the bucket
response = client.list_objects_v2(Bucket='my-bucket')
# Make a dictionary of Key:Modified Date
objects = {object['Key']:object['LastModified'] for object in response['Contents']}
# Make a list of objects modified after a particular object
OBJECT_TO_COMPARE = 'foo.txt'
latest = [key for key in objects if objects[key] > objects[OBJECT_TO_COMPARE]]
# Print result
print ('\n'.join(latest))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6243 次 |
| 最近记录: |