簡體   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