mar*_*tin 8 python amazon-s3 amazon-web-services boto3
我可以通过获取和读取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)
会给我一条路径.
有没有办法事先过滤那些尊重某个起始路径(存储桶中的目录)的文件,这样我就可以避免遍历所有对象并在以后过滤?
Ilj*_*ilä 24
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
objs = bucket.objects.filter(Prefix='myprefix')
for obj in objs:
pass
Run Code Online (Sandbox Code Playgroud)
对于使用boto3.client('s3')而不是 的人boto3.resource('s3'),您可以使用 'Prefix' 键来过滤 s3 存储桶中的对象
import boto3
s3 = boto3.client('s3')
params = {
"Bucket": "HelloWorldBucket",
"Prefix": "Happy"
}
happy_objects = s3.list_objects_v2(**params)
Run Code Online (Sandbox Code Playgroud)
上面的代码片段将获取“HelloWorldBucket”中“Happy”文件夹中的所有文件。
PS:s3 中的文件夹只是一个构造,并作为文件/对象名称的前缀实现。
| 归档时间: |
|
| 查看次数: |
13753 次 |
| 最近记录: |