签名与s3 GET对象不匹配

时间:2015-08-21 06:27:23

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

我在亚马逊s3中有一张图片,其中包含autherized-users的ACL。我试图用GET方法检索该图像。 javascript方法(在角度js中)看起来像这样 (在以下示例中,响应包含必要的数据,如authHeader)

                var uri = 'https://sample.s3.amazonaws.com/sample/image.jpg';
                var postParams = response.data;

                var xhr = new XMLHttpRequest();
                xhr.addEventListener("load", downloadComplete, false);
                xhr.addEventListener("error", downloadFailed, false);
                xhr.addEventListener("abort", downloadCanceled, false);

                function downloadComplete(e) {

                    var xhr = e.srcElement || e.target;
                    if(xhr.status === 200) { //success status
                    }
                    else {
                    }
                }
                function downloadFailed(e) {
                    debugger;
                }
                function downloadCanceled(e) {
                    debugger;
                }

                xhr.open('GET', uri, true);
                xhr.setRequestHeader('Authorization', postParams.authHeader);
                xhr.setRequestHeader('x-amz-content-sha256', postParams.payloadHash);
                xhr.setRequestHeader('Host', "sample.s3.amazonaws.com");
                xhr.setRequestHeader('x-amz-date', postParams.date);
                xhr.send();

但我得到一个403例外,其中有SignatureDoesNotMatch。我有什么不对的吗?我非常确定我提供的价值是正确的。

提前致谢

0 个答案:

没有答案