python - 使用 boto3 向 S3 存储桶添加额外标签

标签 python amazon-web-services amazon-s3 boto3

目前,我正在使用 boto3 标记我拥有的每个 S3 存储桶。与 Lambda 之类的资源相比,执行 s3.put_bucket_tagging 会覆盖之前的所有标签,而 Lambda 则仅添加额外标签,同时保留旧标签。有没有办法只添加标签,而不是覆盖它们?

其次,我创建了一个方法来获取当前标签,添加新标签,然后用这些值覆盖标签,这样我就不会丢失任何标签。但其中一些 S3 存储桶是由 CloudFormation 创建的,因此带有 aws: 前缀,当我尝试获取时,会出现错误 Your TagKey cannot be prefixed with aws:旧标签并重新贴上新标签。

对其中任何一个进行修复,让我能够自动标记每个 s3 存储桶将是最好的解决方案。

最佳答案

你运气不好。如果 S3 存储桶是由 CFT 创建的,则

  • 您无法添加新标签或
  • 添加新标签并丢失 CFT 创建的标签(除非您将该 S3 资源排除在删除之外,否则您的删除堆栈将会失败)

您可以尝试按照@jarmod的建议使用新标签更新堆栈

关于python - 使用 boto3 向 S3 存储桶添加额外标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47206395/

相关文章:

python 需要将 "linspace"转换成更多的 "logarithmic"

python - Django,在哪里更新失败的登录尝试以及为什么?

java - 在java中更改自动伸缩组的所需容量

sql-server - AWS DMS - 从 SQL Server 迁移到 S3 存储桶。如何在 .csv 中添加标题?

ruby-on-rails - 在 Rails 中上传视频需要哪些数据库列 - Carrierwave、Fog 和 S3

python - 根据文件夹更改的数量触发多个 Jenkins 作业

python - 制作一个可以同时运行两个Python脚本的Python脚本

amazon-web-services - .config 文件被弹性 beantalk AWS 忽略

amazon-web-services - 为什么要为 Docker 使用 AWS ECS 与 ElasticBeanstalk?

java - 如何使用java读取S3中存在的JSON文件