由于 s3 没有 create-tag,因此只能使用 put-bucket-tagging,这要求您包含资源上的所有标签,而不仅仅是新标签。因此,除非您包含所有现有标签以及新标签,否则无法将新标签添加到已有标签的存储桶中。这使得批量操作变得更加困难,因为您需要首先获取所有标签,将其推断为 json,编辑 json 以将新标签添加到每个存储桶,然后将其提供给 put-bucket-tagging。
有人有更好的方法来做到这一点或者有一个脚本可以做到这一点吗?
我正在尝试的命令: aws s3api put-bucket-tagging --bucket cbe-res034-scratch-29 --tagging "TagSet=[{Key=Environment,Value=Research}]"
我得到的错误: 调用PutBucketTagging操作时发生错误(InvalidTag):请求者无法删除系统标签
我收到“无法删除”错误,因为 put-bucket-tagging 正在尝试删除此存储桶上的其他 10 个标签(因为我没有将它们包含在 TagSet 中),并且我无权执行以下操作所以。
最佳答案
您可以使用resourcegroupstaggingapi
来实现您期望的结果,请参见下面。
aws resourcegroupstaggingapi tag-resources --resource-arn-list arn:aws:s3:::cbe-res034-scratch-29 --tags Environment=Research
要处理标签名称或值上的空格,请将其用作 json。
aws resourcegroupstaggingapi tag-resources --resource-arn-list arn:aws:s3:::cbe-res034-scratch-29 --tags '{"Environment Name":"Research Area"}'
关于amazon-web-services - AWS cli s3api put-bucket-tagging - 除非存储桶有 0 个标签,否则无法将标签添加到存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60726450/