繁体   English   中英

Boto3 S3 list_objects_v2 不返回任何对象

[英]Boto3 S3 list_objects_v2 Not Returning Any Objects

我正在使用 Boto3 尝试通过 AWS Lambda Python 脚本从 S3 存储桶获取密钥列表。 无论我尝试什么,存储桶都不会返回任何对象。

    import json, boto3, os

def getConfig():
    cfg = {
        "aws_key_id": os.getenv("AWS_KEY_ID", ""),
        "aws_secret": os.getenv("AWS_SECRET", ""),
    }
    return cfg

def lambda_handler(event, context):
    cfg = getConfig()
    bucket_name = "zachs-taxi"
    session = boto3.Session(
        aws_access_key_id=cfg.get('aws_key_id'),
        aws_secret_access_key=cfg.get('aws_secret')
        )
    s3 = session.client('s3')

我尝试了以下两种方法,但都返回空:

    response = s3.list_objects_v2(
        Bucket=bucket_name)
    for content in response.get('Contents', []):
        print(content['Key'])

    paginator = s3.get_paginator("list_objects_v2")
    for page in paginator.paginate(Bucket=bucket_name):
        for content in page.get('Contents', ()):
            print(content['Key'])

S3 存储桶是公开的,我可以访问它。 里面有一个名为 content 的文件夹,该文件夹中有一个 .png 文件。

任何帮助,将不胜感激。 谢谢!

当我在自己的计算机上运行时,您的代码对我来说运行得非常好(使用不同的存储桶名称):

import boto3

bucket_name = "my-bucketname"

s3 = boto3.client('s3')

response = s3.list_objects_v2(Bucket=bucket_name)
for content in response.get('Contents', []):
    print(content['Key'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM