【发布时间】:2015-02-16 20:20:00
【问题描述】:
我想创建一个带有自定义内容类型的签名网址,我正在尝试这个:
s3.getSignedUrl('getObject', {Bucket: AWS_BUCKET_NAME, Key: 'myObjectsKey', ContentType: 'image/png'}, function (err, url) {
console.log(err, url);
});
但是这会产生错误:
{ [UnexpectedParameter: Unexpected key 'ContentType' found in params]
message: 'Unexpected key \'ContentType\' found in params',
code: 'UnexpectedParameter',
time: Thu Dec 18 2014 01:38:19 GMT-0400 (AST) }
我觉得很奇怪,因为这里有关于签名请求的文档:
http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
声明签名是通过散列生成的:
Signature = URL-Encode(Base64(HMAC-SHA1(YourSecretAccessKeyID, UTF-8-Encoding-Of(StringToSign))));
StringToSign = HTTP-VERB + "\n" +
Content-MD5 + "\n" +
Content-Type + "\n" +
Expires + "\n" +
CanonicalizedAmzHeaders +
CanonicalizedResource;
这允许您提供内容类型。有谁知道怎么回事?
【问题讨论】:
-
您是否尝试在 Contenttype 中提供
-(连字符)?
标签: javascript node.js amazon-web-services amazon-s3 amazon