签名与s3上传对象不匹配

时间:2013-10-07 06:33:13

标签: javascript rest amazon-web-services amazon-s3

我正在尝试使用rest api将图像卸载到amazon s3。我已经看过他们的文档,但问题是我只使用临时凭证,它将过期约一个小时。以下是回复

{
 accessKey: "mykey"
 secretKey: "mysecret"
 token: "mytemptoken"
 expiry: 1381128021000
}

我的政策

POLICY_JSON = { "expiration": "2013-12-03T12:29:27.000Z",
            "conditions": [
                    ["eq", "$bucket", this.get('bucket')],
                    ["starts-with", "$key", this.get('key')],
                    {"acl": this.get('acl')},
                    {"success_action_redirect": this.get('successActionRedirect')},
                    ["starts-with", "$Content-Type", this.get('contentType')]
            ]
          };

这是我到目前为止尝试的内容: 使用chrome advance rest客户端我输入了此网址:https://mybucket.s3.amazonaws.com/avatars/test@domain.com,标题为

Authorization: AWS mykey:CXp5qqO6q552VDYUI0aBlSd/pTs=
x-amz-security-token: mytemptoken
x-amz-date: Mon, 07 OCt 2013 06:20:37 GMT

结果是:403 Forbidden并且它说SignatureDoesNotMatch。有没有人能够仅使用s3的Rest Api(不使用SDK)来完成对象的上传。客户问我是否可以仅使用javascript构建它。这可能吗?

1 个答案:

答案 0 :(得分:1)

您是否应该签署内容? Check this如何签名。签名后,您必须在Authorization标头中传递签名值。

授权:A​​WS AWSAccessKeyId:签名