我正在使用这个功能:
aws s3api put-bucket-tagging --bucket $bucket --tagging 'TagSet=[{Key=ss,Value=mm}]
它正在删除现有标签,我只能看到一个标签。
这就是 API 的工作方式,是的 - 这就是 PUT API 一般的工作方式,POST API 可能会附加新标签或添加新属性等,但 PUT API 会覆盖。
要使其正常工作,您需要检索所有标签,将它们与新标签组合,然后一次放置所有标签。您可以使用例如轻松做到这一点
jq
:
# assuming there are already tags otherwise the get-bucket-tagging fails
data=$(aws s3api get-bucket-tagging --bucket $bucket | jq '.TagSet += [{"Key":"tag2", "Value": "value2"}]')
aws s3api put-bucket-tagging --bucket $bucket --tagging "$data"
aws s3api get-bucket-tagging --bucket $bucket # should print the merged tags