我做了所有事情Heroku recommended,但我一直收到SignatureDoesNotMatch
错误。有消息:
The request signature we calculated does not
match the signature you provided. Check your key
and signing method.
但我确实意味着要签署任何协议。我只想要一个可以直接下载文件的链接。
这是我在Node JS服务器上的aws配置。我用它们来生成签名请求。他们为我提供了很长的链接。
var s3_params = {
Bucket: S3_BUCKET,
Key: filename,
Expires: 400,
ContentType: fileType,
ACL: 'public-read'
}
我是否正确地认为我不需要使用AWS密钥来上传带有签名请求的文件?
答案 0 :(得分:1)
或者您可以查看我为简单起见编写的 mc
工具,您可以从https://github.com/minio/mc下载OS X,Linux和Windows的二进制文件
$ mc share download --expiry=400s <YOUR-S3-URL>
mc
也实现了&#39; - json&#39;输出,这样您就可以轻松地构建服务器端nodejs服务。没有--expiry URL与默认7天的到期共享。
$ mc share download --json s3.amazonaws.com/ferenginar/distrikt_2014-01-31T07_31_11-08_00.mp3 | jq .
{
"status": "success",
"url": "https://s3.amazonaws.com/ferenginar/distrikt_2014-01-31T07_31_11-08_00.mp3",
"share": "https://s3.amazonaws.com/ferenginar/distrikt_2014-01-31T07_31_11-08_00.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI6SNMUFOVIEFOZJA%2F20151125%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20151125T002135Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=082e01d815e6aee8bc567d1d86d79d635b5313337dfba46524f35cfc6858e857",
"timeLeft": 604800000000000
}
希望这有帮助!
答案 1 :(得分:0)
问题在于凭据错误。我忘记了,我从AWS中删除了我的密钥。我重新创建它,现在一切正常。