我正在尝试使用AWS S3 SDK上传图片。现在这个工作之前,但由于某种原因,它只是停止工作,我开始得到这个错误:
现在当我点击链接时,它给了我一个“NoSuchKey”'错误:
我真的不明白这一点,因为我的密钥实际上只是一个字符串。我也试图上传一些东西,显然密钥不存在 - 我试图上传它!
<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错误。
我不知道为什么这些不同或者它们甚至应该是不同的。我也不知道如何更改网址,因为我不认为我实际上告诉它要去哪个网址。
任何想法都表示赞赏。
感谢。
答案 0 :(得分:3)
事实证明,正是元数据搞砸了一切。我花了两天的时间来弄清楚元数据之后的额外空间会引发这个错误。根本不是一个有用的错误消息。