[英]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.