2009-11-24 34 views
8

我期待来证实或反驳如下:纯Javascript应用+ Amazon S3?

对于我迄今是不可能读到写,只有JavaScript的Web应用程序 - 没有服务器端逻辑 - 从亚马逊S3服务也如果您需要为每个客户端使用私人数据的多个客户端,则仅将数据存储到S3。

我看到的问题是每个Ajax调用所需的授权标头,这会迫使我在页面源中将签名(以及我的AWS ID)放在页面源代码中供大家查看。

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

是否有解决方法?

回答

7

总之,你是对的。

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


一种可能的方案是,当然,让用户指定用于存储它们的数据 AWS键。

+0

但是,如果我使用他们的AWS密钥,我不能使用DevPay,对吗?他们基本上就自己而言就注册而言,他们必须用手中的钥匙来接近我的应用程序,对吧? – user179997 2009-11-24 20:37:29

+0

对不起 - 我不太了解DevPay说些相关的东西。 – jldupont 2009-11-24 20:55:31

+0

当然,这是一个很好的答案,谢谢! – user179997 2010-04-27 14:31:41

-1

iBeans提供了一种解决方法,无需编写任何服务器端代码。有一款S3 iBean(开发人员正在开发它,以便在接下来的几天内发布 - 请查看mulesoft blog以获得公告),并且您可以通过javascript访问它。 iBean本身在服务器上运行,所以你不需要在JavaScript中存储你的密钥。

+0

谢谢,我正在寻找一个简短但不含糊的描述,你有指针吗?它是否托管? – user179997 2009-12-06 02:09:53

3

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

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

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

我的工作只是初始化S3端应用程序,并对S3执行测试PUT/GET序列。我还重写了一个JQuery postMessage插件(StackOverflow不会让我发布缺乏代表)来通信我的框架。

在我的情况下,我试图将整个应用程序合并到一个HTML文件中,这样我就不必像S3那样进行最初的传输,但也许有其他方法可以解决这个问题。