【发布时间】:2018-01-04 16:06:43
【问题描述】:
我能找到的其他问题是指较旧版本的 Boto。我想下载 S3 存储桶的最新文件。在documentation 中,我发现有一个方法 list_object_versions() 可以为您提供一个布尔值 IsLatest。不幸的是,我只设法建立连接并下载文件。您能否告诉我如何扩展我的代码以获取存储桶的最新文件?谢谢
import boto3
conn = boto3.client('s3',
region_name="eu-west-1",
endpoint_url="customendpoint",
config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
从这里我不知道如何从名为mytestbucket 的存储桶中获取最新添加的文件。存储桶中有各种 csv 文件,但名称当然不同。
更新:
import boto3
from botocore.client import Config
s3 = boto3.resource('s3', region_name="eu-west-1", endpoint_url="custom endpoint", aws_access_key_id = '1234', aws_secret_access_key = '1234', config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
my_bucket = s3.Bucket('mytestbucket22')
unsorted = []
for file in my_bucket.objects.filter():
unsorted.append(file)
files = [obj.key for obj in sorted(unsorted, key=get_last_modified, reverse=True)][0:9]
这给了我以下错误:
NameError: name 'get_last_modified' is not defined
【问题讨论】:
标签: python amazon-web-services amazon-s3 boto boto3