[英]AWS SDK v3 for nodejs, how to get tags of an s3 bucket?
我正在嘗試使用適用於 Nodejs 的 AWS SDK v3 提取 s3 存儲桶的標簽。 這是我的代碼,基於如何列出所有存儲桶的示例:
const { S3Client, GetBucketTaggingCommand } = require("@aws-sdk/client-s3");
const { fromIni } = require("@aws-sdk/credential-provider-ini");
const s3 = new S3Client({
credentials: fromIni({
profile: 'example-s3'
})
});
const run = async () => {
try {
const data = await s3.send(new GetBucketTaggingCommand({
Bucket: "example-bucket"
}));
console.log("Success", data);
} catch (err) {
console.log("Error", err);
}
};
run();
如果我運行這個,我得到
Error Error: No value provided for input HTTP label: Bucket.
我已經閱讀了GetBucketTaggingCommand的文檔。 它需要類型為GetBucketTaggingCommandInput的輸入。 那是一個json object具有我提供的必需屬性Bucket
。 那我在這里錯過了什么?
似乎您的配置有問題。 不過我可能是錯的。 我的配置如下所示:
const s3Client = new S3Client({
region,
credentials: {
accessKeyId,
secretAccessKey
}
});
但是當我為GetObjectCommand
應用不正確的命令輸入時出現此錯誤:
錯誤的:
s3Client.send(new GetObjectCommand({
client: s3Client,
params: {
Bucket: bucketName,
Key: key
},
}));
正確的:
s3Client.send(new GetObjectCommand({
Bucket: bucketName,
Key: key
}));
但我對你的情況最好的猜測是問題在於你如何創建你的S3Client
構造函數。
這意味着您的存儲桶名稱未設置。 核實。
錯誤錯誤:沒有為輸入提供值 HTTP label:桶。
我不知道它是否有幫助,但我收到了該消息,問題如下:
我忘記將“bucket”名稱放入 .env 文件中,所以我發送了未定義“bucketname”的參數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.