Node.js 为什么我能';无法从AmazonS3获取签名的Url?
我想使用Nodejs从亚马逊s3获取签名Url,我构建了我的bucket和IAM,但在我使用postman从我的计算机发送请求后,我总是收到一个回复,回复是:Node.js 为什么我能';无法从AmazonS3获取签名的Url?,node.js,amazon-web-services,amazon-s3,Node.js,Amazon Web Services,Amazon S3,我想使用Nodejs从亚马逊s3获取签名Url,我构建了我的bucket和IAM,但在我使用postman从我的计算机发送请求后,我总是收到一个回复,回复是: "e": { "message": "Missing credentials in config", "errno": "ETIMEDOUT", "code": "CredentialsError", "syscall": "connect", "addres
"e": {
"message": "Missing credentials in config",
"errno": "ETIMEDOUT",
"code": "CredentialsError",
"syscall": "connect",
"address": "169.251.165.251",
"port": 80,
"time": "2018-08-04T17:20:32.554Z",
"originalError": {
"message": "Could not load credentials from any providers",
"errno": "ETIMEDOUT",
"code": "CredentialsError",
"syscall": "connect",
"address": "169.251.165.251",
"port": 80,
"time": "2018-08-04T17:20:32.554Z",
"originalError": {
"errno": "ETIMEDOUT",
"code": "ETIMEDOUT",
"syscall": "connect",
"address": "169.251.165.251",
"port": 80,
"message": "connect ETIMEDOUT 169.251.165.251:80"
}
}
}
这是我的nodejs代码:
const s3 = new AWS.S3()
s3.config.update({
accessKeyId:keys.accessKeyId,
secretAcccessKey:keys.secretAcccessKey,
region: 'us-west-2'
});
router.get('/',
passport.authenticate('jwt',{session:false}),
(req,res)=>{
const key =`${req.user.id}/${uuid()}.jpeg`;
s3.getSignedUrl(
'putObject',{
Bucket:'NameOfBucket',
ContentType:'jpeg',
Key:key,
Expires:1000
},
(e,url)=>res.json({e}));
});
检查具有accessKeyId和SecretAccessKey的用户是否确实有权访问S3感谢您的回复,我检查用户是否有权访问该bucket。此错误不是权限问题。这表明您用于配置的值有问题。。。也许,它们实际上是空的。始终
“严格使用”代码>。