AWS S3:我们计算的请求签名与您提供的签名不匹配

时间:2017-03-03 03:27:28

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

我正在尝试使用AWS S3 SDK上传图片。现在这个工作之前,但由于某种原因,它只是停止工作,我开始得到这个错误:

enter image description here

现在当我点击链接时,它给了我一个“NoSuchKey”'错误:

enter image description here

我真的不明白这一点,因为我的密钥实际上只是一个字符串。我也试图上传一些东西,显然密钥不存在 - 我试图上传它!

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<table>
    <tr><td>Text to Save:</td></tr>
    <tr>
        <td colspan="3">
            <textarea id="inputTextToSave" cols="30" rows="7"  class="form-control" placeholder="enter your text here!"></textarea>
        </td>
    </tr>
    <tr>
        <td>Filename to Save As:</td>
        <td><input id="inputFileNameToSaveAs" placeholder="example.txt" class="form-control"></td>
        <td><button class="btn btn-primary" onclick="saveTextAsFile()">Save Text to File</button></td>
    </tr>
    <tr>
        <td>Select a File to Load:</td>
        <td><input  class="form-control" type="file" id="fileToLoad"></td>
        <td><button class="btn btn-primary" onclick="loadFileAsText()">Load Selected File</button><td>
    </tr>
</table>

同样奇怪的是,我遵循了两个教程,提交了我的凭据,并且它适用于两者。然后我逐字复制粘贴他们如何将AWS配置对象配置到我的initiateBucket函数中,我最终得到了同样的错误。

这是我遵循的教程之一(查看&#34;配置SDK&#34;):

http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photo-album.html

另一个教程来自博客,我没有链接,但上面的代码与文档中的本教程相同。我所做的只是将它移动到一个函数(它被调用),而在教程中,它将它作为一个全局变量。

由于它在教程中有效,因此无法解决配置问题。我认为它必须与403错误和&#34; NoSuchKey&#34;错误。但同样,代码与教程中的代码相同,我只是传递字符串,因此也没有意义。

我注意到的另一件事是来自403错误的链接有点奇怪。它以&#34; https://mng-monet.s3.amazonaws.com/test&#34;

开头

它不应该是s3.amazonaws //这么关键吗?: &#34; https://s3.amazonaws.com/mng-moment/test/ ...&#34 ;.我的文件中的文件的URL以s3.amazonaws开头,而不是我的bucketName,如403错误。

我不知道为什么这些不同或者它们甚至应该是不同的。我也不知道如何更改网址,因为我不认为我实际上告诉它要去哪个网址。

任何想法都表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:3)

事实证明,正是元数据搞砸了一切。我花了两天的时间来弄清楚元数据之后的额外空间会引发这个错误。根本不是一个有用的错误消息。