amazon-web-services - 如何列出 S3 存储桶中具有特定标签的文件?
问题描述
这是我的代码:
import json, boto3
def lambda_handler(event, context):
client = boto3.client("s3", region_name='us-east-1')
response = client.list_objects(Bucket='test-bucket')
return response
上面的代码对我来说工作正常。但是我想列出存储桶中在文件(对象)上有特定标签的所有对象,比如说
department:finance
我为此写了以下政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:List*",
"Resource": "arn:aws:s3:::mynewbucket1122",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/department": "finance"
}
}
}
]
}
但是我遇到了错误,我怎样才能得到预期的结果。
解决方案
存储桶策略即使正确,也不会按标签过滤您的对象。您仍然需要调用您的list_objects
,获取对象的完整列表,并反复检查它们的标签以仅获取您感兴趣的那些。
换句话说,您必须在代码中进行过滤。
推荐阅读
- javascript - 如何在不评估数字的情况下让 JavaScript 输出字符串?
- idris - Idris 练习中的类型错误
- ssl - Prestashop 1.5 无法启用 SSL
- postgresql - 从 Dataframe 批量插入到 DB 忽略 Pyspark 中的失败行
- javascript - Angular 6,注入器,单例
- c# - 无法在 Visual Studio 中加载文件或程序集错误
- java - Jhipster Registry 4.0.0 异常预打包WAR
- docker - 在 openshift 中同步服务的所有 Pod
- reactjs - React Native Google Signin Fail 当我将构建发布 apk 时
- python - 如何从 tweepy 类中解析子元素