
[英]Is there a way to parallelize boto3's list_objects_v2 method?
[英]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.