繁体   English   中英

如何将 object 标签放在现有标签 object 上

[英]How to put object tags on existing tagged object

我目前正在使用 NodeJS 和 AWS S3 SDK 开发 Lambda 函数。

在本地使用无服务器离线工作时,我可以轻松地将 object TagSet 替换为putObjectTagging function,但在生产环境中,我确实遇到此错误:

不能提供具有相同键的多个标签

在阅读putObjectTagging和 AWS 标签文档时,我没有找到针对此错误的任何解决方案,因为我确实假设putObjectTagging替换了现有 object 的所有标签。

在我的代码中,我获取现有的 TagSet 并更新值,然后将它们放入:

let tags = await S3.getObjectTagging(bucketParam).promise();
// process on tags and set in paramsPutObjectTagging
await S3.putObjectTagging(paramsPutObjectTagging).promise();

提前谢谢你, 问候。

s3:PutObjectTagging调用将用调用中提供的 TagSet 替换TagSet上的任何现有TagSet 虽然调用请求体中的TagSet属性是一个数组,但是数组中每一项的Key属性必须是不同的, TagSet中不能有重复的Key

要向 object 添加新标签,同时保留现有标签,您需要使用s3:GetObjectTagging检索现有TagSet ,然后 append 将新标签添加到TagSet数组,然后如上所述使用s3:PutObjectTagging 执行此操作时,您需要检查从s3:GetObjectTagging检索到的TagSet中是否还没有与您尝试添加的新标签具有相同Key的标签 - 这可能就是您收到该错误的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM