2015-03-08 366 views
2

我有一个功能来读取AWS S3'key'的内容。关键是JS file,称为colorInfo。我可以从S3界面导航到文件,我可以从python shell成功访问它。 在再造一个函数内的蟒蛇壳步骤,插入功能到Python文件的其余部分,它called--Boto AWS S3-“NoSuchKey”,当密钥确实存在时

'S3ResponseError: 404 Not Found' and: '<Error><Code>NoSuchKey</Code><Message>The specified key does not exist</Message<Key>http:/s3.amazonaws.com/org.gomoto.izmo/Colors/2014/ 
14ram/14ram1500tradesmanreg4a/colorInfo.js</Key>' 

当“colorInfo.js的生活中呈现了我从Django的调试控制台中的错误'14ram1500tradesmanreg4a' key。有没有人有任何见解?如果可以帮助任何人,我可以提供更多细节。

谢谢!

回答

3

错误消息是正确的。您请求的对象不存在,因为您请求的是错误的对象。请仔细阅读:

<Key>http:/s3.amazonaws.com/org.gomoto.izmo/Colors/2014/ 14ram/14ram1500tradesmanreg4a/colorInfo.js</Key> 

这是关键,这只有包含路径和文件名。它不包含存储桶或“http”或主机名。

这意味着,而不是尝试下载http://s3.amazonaws.com/bucket/object您似乎链接到http://s3.amazonaws.com/bucket/http:/s3.amazonaws.com/bucket/object。它看起来好像在某些时候,你提供了一个完整的URL,你应该只提供密钥。

+0

因此,我可以从我的Web浏览器导航到[http:/s3.amazonaws.com/org.gomoto.izmo/Colors/2014/ 14ram/14ram1500tradesmanreg4a/colorInfo.js]这一事实并不意味着密钥可用? 我该如何从我的python代码中访问该python文件呢? – Richael 2015-03-09 15:17:47

+0

@Richael the ** key **对象是'Colors/2014/...'。它不是'http:// ...'。您正在尝试请求格式不正确的网址时收到错误消息。关键是*仅*路径和文件名。错误中显示的关键字包含无关信息的事实告诉您,您没有请求您打算从S3请求的内容。 – 2015-03-09 17:25:51

+0

谢谢你的帮助迈克尔。我们修复了我们的bug – Richael 2015-03-10 16:56:17