python-3.x - 连接到 s3 中的特定路径
问题描述
我正在尝试使用 python 示例连接到 s3 中的特定文件夹:s3://main_folder/sub_folder1/sub_folder2/
# want to enter sub_folder2 - s3://main_folder/sub_folder1/sub_folder2/
import boto3
def connect_to_s3():
s3_cli = boto3.resourse('s3')
bucket = s3_cli.Bucket('sub_folder2')
for b in bucket.objects.all():
print(b.key)
我收到此错误:
raise error_class(parsed_response, operation_name) botocore.errorfactory.NoSuchBucket:调用ListObjects操作时发生错误(NoSuchBucket):指定的bucket不存在
解决方案
错误说:The specified bucket does not exist
这是因为需要Buckets3_cli.Bucket('sub_folder2')
的名称,但您提供了文件夹的名称,但没有告诉它存储桶的名称。
如果您只想对存储桶的子集执行操作,可以使用 afilter
和 a prefix
:
import boto3
def connect_to_s3():
s3_cli = boto3.resourse('s3')
bucket = s3_cli.Bucket('my-bucket')
for b in bucket.objects.filter(Prefix='sub_folder1/sub_folder2/').all():
print(b.key)
推荐阅读
- java - 在 Java 中,如何解释字符串的 UTF-8 字节?
- javascript - 为什么即使构造函数在其原型链中,类的 instanceof 也会返回 false?
- java - java.sql.SQLException:连接太多
- vue.js - 将 VueJS 部署到 GitHub 页面
- c - 可变参数宏调用 fprintf:如何向 __VA_ARGS__ 添加参数?
- git - 如何将 TypeScript 定义文件添加到源代码管理?
- haskell - 我怎样才能在haskell中解决这个问题?
- mysql - 将查询从 MySQL 转换为 SQL Server(包括 GROUP BY)
- javascript - 使用 node-config 部署 Firebase 函数
- fatal-error - UE4 19.2,Windows 打包未知错误