AWS/Node.js S3签名URL被拒绝
我正在使用Amazon的Node.jsAWS/Node.js S3签名URL被拒绝,node.js,amazon-s3,Node.js,Amazon S3,我正在使用Amazon的Node.jsaws sdk为数字产品下载创建过期的预签名S3 URL,并努力解决这个问题。我已经成功地用我的密钥配置了SDK,并且在收集签名URL时尝试了同步方法(未显示)和异步方法(显示)。这些调用工作正常,我从未遇到任何错误,并且成功地返回了已签名的URL。这里是一个转折点:我得到的网址不工作 const promises = skus.map(function(sku) { const key = productKeys[sku]; return new
aws sdk
为数字产品下载创建过期的预签名S3 URL,并努力解决这个问题。我已经成功地用我的密钥配置了SDK,并且在收集签名URL时尝试了同步方法(未显示)和异步方法(显示)。这些调用工作正常,我从未遇到任何错误,并且成功地返回了已签名的URL。这里是一个转折点:我得到的网址不工作
const promises = skus.map(function(sku) {
const key = productKeys[sku];
return new Promise((resolve, reject) => {
s3.getSignedUrl('getObject', {
Bucket: 'my-products',
Key: key,
Expires: 60 * 60 * 24, // Time in seconds; 24 hours
}, function(err, res) {
if (err) {
reject(err);
} else {
resolve({
text: productNames[sku],
url: res,
});
}
});;
});
});
我认为这是我分配的密钥的一个错误,我分配给了一个拥有完整S3存储桶访问权限的IAM用户。因此,我尝试使用根级别的密钥对,得到了相同的拒绝访问结果。有趣的是:我得到的URL采用了https://my-bucket.s3.amazonaws.com/Path/To/My/Product.zip?AWSAccessKeyId=blahblahMyKey&Expires=43914919&Signature=blahblahmysig&x-amz安全令牌=hugelongstring
。我以前从未见过这个x-amz-security-token
东西,如果我尝试删除该查询参数,我会被拒绝访问,但原因不同:AWSAccessKeyId与我的任何帐户都没有关联。它不是我配置SDK时使用的,也不是我在S3帐户上分配的。不知道它来自何处,也不知道它与x-amz-security-token
param的关系
不管怎样,我被难住了。我只是想要一个工作预签名的网址。。。有什么好处?谢谢你的帮助。Hi@nc91。你找到解决办法了吗?我也有同样的问题。嗨@NC91。你找到解决办法了吗?我也有同样的问题。