【发布时间】:2022-04-07 01:11:10
【问题描述】:
我目前正在使用 NodeJS 和 AWS S3 SDK 开发 Lambda 函数。
在本地使用无服务器离线工作时,我可以轻松地将对象 TagSet 替换为 putObjectTagging 函数,但在生产环境中,我确实遇到了这个错误:
不能为多个标签提供相同的键
在阅读 putObjectTagging 和 AWS 标签文档时,我没有找到任何解决此错误的方法,因为我认为 putObjectTagging 会替换现有对象的所有标签。
在我的代码中,我获取了现有的 TagSet 并更新了值,然后将它们放入:
let tags = await S3.getObjectTagging(bucketParam).promise();
// process on tags and set in paramsPutObjectTagging
await S3.putObjectTagging(paramsPutObjectTagging).promise();
提前谢谢你, 问候。
【问题讨论】:
-
正如 AWS 文档所说: > PUT 对象标记 – 替换对象上的标签。您在请求 > 正文中指定标签。使用此 API 的对象标签管理有两种不同的场景。 > - 对象没有标签 - 使用此 API,您可以向对象添加一组标签(> 对象没有先前的标签)。 > - 对象有一组现有的标签 - 要修改现有的标签集,您必须>首先检索现有的标签集,在客户端修改它,然后使用>此API替换标签集。
标签: javascript node.js amazon-web-services amazon-s3 lambda