gpt4 book ai didi

node.js - 预签名 URL 生成错误 - Nodejs AWS SDK S3

转载 作者:太空宇宙 更新时间:2023-11-04 03:14:55 25 4
gpt4 key购买 nike

我正在使用 NodeJS AWS SDK 生成预签名的 S3 URL。这是我的代码

const s3 = new AWS.S3({accessKeyId: IAM_USER_KEY, secretAccessKey:IAM_USER_SECRET});

const myKey = 'test.csv';
const signedUrlExpireSeconds = 60 * 5;

const url = await s3.getSignedUrl('getObject', {
Bucket: BUCKET_NAME,
Key: myKey,
Expires: signedUrlExpireSeconds,
})

console.log(url)

当我使用浏览器访问该网址时,它会显示此错误

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>test.csv</Key>
<RequestId>EAFAC43D236CAFDF</RequestId>
<HostId>
knOGCpoUWq4TaRJmkx+ztWFliPOSABdnineRyNhhkqc/ahgPTpYSA+Aawmj5w2odWMt2kk3fGhY=
</HostId>
</Error>

在客户端,它返回 400 bad request 错误。如果存储桶名称、 key 或 secret key 错误,则会返回不同的错误,因此我不认为这是拼写错误问题,但我不知道错误来自何处。

最佳答案

NoSuchKey是 404 错误,而不是 400。

这里的“键”是对象键。

<Key>test.csv</Key>

此存储桶的根目录中没有名为 test.csv 的文件。对象键区分大小写。

如果您在 S3 控制台中看不到该对象,那么这当然就是问题所在。

如果该对象出现在控制台的文件夹中,则需要将其包含在文件test.csv的 key 中。文件夹内documents Key您需要使用的是 documents/test.csv .

如果您在控制台中看到此对象,请检查控制台中的链接是否有特殊的不可打印字符,例如 %0A (换行符)您在上传对象时可能无意中包含的内容。

关于node.js - 预签名 URL 生成错误 - Nodejs AWS SDK S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58033922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com