相关疑难解决方法(0)

Boto3:仅从S3资源中获取所选对象

我可以通过获取和读取AWS S3存储桶中的所有对象

s3 = boto3.resource('s3')
    bucket = s3.Bucket('my-bucket')
    all_objs = bucket.objects.all()
    for obj in all_objs:
        pass
        #filter only the objects I need
Run Code Online (Sandbox Code Playgroud)

然后

obj.key
Run Code Online (Sandbox Code Playgroud)

会给我一条路径.

有没有办法事先过滤那些尊重某个起始路径(存储桶中的目录)的文件,这样我就可以避免遍历所有对象并在以后过滤?

python amazon-s3 amazon-web-services boto3

8
推荐指数
2
解决办法
1万
查看次数

在Boto3中,如何使用其他关键字参数为list_objects创建一个Paginator?

我正在使用a Paginator来迭代S3存储桶的内容(在http://boto3.readthedocs.io/en/latest/guide/paginators.html#creating-paginators之后):

    client = boto3.client('s3')
    paginator = client.get_paginator('list_objects')
    page_iterator = paginator.paginate(Bucket=<my_bucket>)

    for page in page_iterator:
        for object in page['Contents']:
            key = object['Key']
Run Code Online (Sandbox Code Playgroud)

在此示例中,方法名称'list_objects'作为字符串传递.但是,我实际上想使用list_objects带有关键字参数的'partial'函数Prefix="files/",因为我感兴趣的对象位于files/'目录'中(参见http://boto3.readthedocs.io/en/latest/reference /services/s3.html#S3.Client.list_objects).

这可能吗?(从文档中我不清楚如何做到这一点;我可以if key.startswith("files/")在双for循环中做一个,但这似乎不是一个优雅的解决方案).

python pagination amazon-s3 amazon-web-services boto3

1
推荐指数
1
解决办法
4096
查看次数