我试图让我的头发试图让S3 Direct Client Side PUT操作起作用.
我们有一个版本的后端代码在Python上工作没有任何问题(所以我们知道前端工作正常)我们正在尝试将后端移植到Node.JS.
我有一个端点设置,它返回一个签名的PUT URL,这里是代码:
var objectKey = req.query.s3_object_name; var objectType = req.query.s3_object_type; var params = { Bucket: s3Bucket, Key: objectKey, // ContentType: objectType, //(I have tried with and without this) Expires: 60 }; s3.getSignedUrl('putObject', params, function(err, signedUrl){ if(err){ res.send(400); }else{ res.end(JSON.stringify({ signed_request: signedUrl, url: "http://"+s3Bucket+".s3.amazonaws.com/"+objectKey })); } });
不幸的是亚马逊总是返回以下错误:
SignatureDoesNotMatch - 我们计算的请求签名与您提供的签名不匹配.检查您的密钥和签名方法.
有没有人成功获得JavaScript aws-sdk来成功执行此任务?有什么指针吗?我有两次和三次检查我的AWS Key和Secret.
问候:
John Chipps-Harding