纯Javascript应用+亚马逊S3?

时间:2009-11-24 19:46:06

标签: javascript ajax amazon-s3 cloud

我希望确认或反驳以下内容:

对于我到目前为止所读到的内容,如果您需要将多个客户端设置为私有,则无法编写仅具有javascript的Web应用程序 - 无服务器端逻辑 - 从Amazon S3提供,该数据库也仅将数据存储到S3每个客户的数据。

我看到的问题是每个Ajax调用都需要Authorization标头,这会强制我将签名(和我的AWS id)放在页面源中,供所有人查看。

这是正确的还是我误解了文档?

有解决方法吗?

3 个答案:

答案 0 :(得分:7)

简而言之,你是对的。

如果您的AWS密钥在客户端以任何方式结束,则您遇到了麻烦。


当然,可能的解决方案是让用户指定他们的 AWS密钥来存储他们的数据。

答案 1 :(得分:3)

我正在开发一个类似于此的项目,我的用户将使用他们自己的S3,我将存储在HTML5 localStorage中。这有点棘手,但我已经掌握了基础知识。

它涉及制作一个Javascript程序,将自身复制到S3,从S3获取自己,然后将凭据和控制权转移到S3加载版本。

我正在使用优秀的SJCL为我可以的部分做签名生成和jQuery的ajax功能。

我的工作只是初始化S3端应用程序并对S3进行测试PUT / GET序列。我还重写了一个JQuery postMessage插件(StackOverflow不会让我发布缺少rep的帖子),用于在我的框架之间进行通信。

就我而言,我正在尝试将整个应用程序整合到一个HTML文件中,这样我就不需要对S3进行尽可能多的初始传输,但也许还有其他方法可以解决这个问题。

答案 2 :(得分:-1)

iBeans提供了解决此问题的方法,无需编写任何服务器端代码。有一个S3 iBean(开发人员正在努力在接下来的几天内发布它 - 观看mulesoft blog发布公告),你可以直接从你的javascript访问它。 iBean本身在服务器上运行,因此您无需将密钥存储在javascript中。