python - S3 : Invalid bucket name - Bucket name must match the regex

标签 python amazon-web-services amazon-s3 error-handling

我尝试使用以下代码列出一个特定 S3 存储桶中的对象:

conn = client('s3')  # again assumes boto.cfg setup, assume AWS S3
for key in conn.list_objects(Bucket='arn:aws:s3:::my-bucket1/NAME/OF/FOLDER/')['Contents']:
    print(key['Key'])

但出现此错误:

Invalid bucket name "arn:aws:s3:::my-bucket1/NAME/OF/FOLDER/": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$" or be an ARN matching the regex "^arn:(aws).*:(s3|s3-object-lambda):[a-z\-0-9]*:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\-.]{1,63}$|^arn:(aws).*:s3-outposts:[a-z\-0-9]+:[0-9]{12}:outpost[/:][a-zA-Z0-9\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\-]{1,63}$"

我还尝试了其他一些方法(指定 S3 存储桶的路径),但没有任何效果。我能做什么?

最佳答案

应该是

Bucket='my-bucket1'
for key in conn.list_objects(Bucket='my-bucket1', Prefix='NAME/OF/FOLDER/')['Contents']:
    print(key['Key'])

关于python - S3 : Invalid bucket name - Bucket name must match the regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72027152/

相关文章:

Python27(win) : import daemon, 但是报错:No module named pwd

c++ - 如何使用 python、perl 或 sed 从头文件中提取注释?

python - 从 PDF 中搜索文本的脚本

python - 当我尝试使用syncdb时,重复的user_id错误来自哪里?

python - 无法导入模块 'lambda_function' : No module named 'cx_Oracle'

amazon-web-services - 如何在 AWS Application Load Balancer 中限制文件上传大小?

javascript - 在客户端使用 Amazon Simple Notification Service (SNS)

c# - 将图像从 Stream/StreamReader 加载到图像或 RawImage 组件

image - React Native - 无需缓存即可快速加载图像的更好方法

objective-c - 迭代从 S3 下载的 JSON 文件