til*_*lda 11 javascript cloud api azure amazon-web-services
我正在研究直接从客户端JavaScript使用一些云存储的可能性.但是,我遇到了两个问题:
安全性 - 体系结构通常基于每个云客户端构建,因此有一个API密钥(例如).这是有问题的,因为我需要每一个安全我的用户.我无法向所有用户提供相同的API密钥.
跨域AJAX.浏览器可以使用HTTP标头来执行跨域请求,但这意味着我必须能够在云端设置它们.但是,我需要的唯一工作就是能够添加自定义HTTP响应头:Access-Control-Allow-Origin:otherdomain.com.
我的场景涉及来自JS客户端的大量简单队列消息,我想我会使用云来摆脱来自我的主要托管服务提供商的这种流量.Windows Azure有这个队列服务部分,它似乎非常接近我需要的,除了我不知道这些问题是否可以解决.
有什么想法吗?在我看来,云服务的JavaScript客户端在不久的将来是不可避免的场景.
那么,是否有一些带有REST API的云存储可以管理客户端的身份验证,而不会为其提供API密钥?
cod*_*oud 12
Windows Azure Blob存储具有共享访问签名(SAS)的概念,可以在服务器端发布,并且本质上是客户端可以写入的特殊URL,而无需直接访问存储帐户API密钥.这是Windows Azure存储中唯一允许在不访问存储帐户密钥的情况下写入数据的机制.
SAS可以过期(例如,给用户10分钟使用SAS URL进行上传),并且可以设置为允许即使在发布后也取消访问.此外,SAS可用于限时读取访问(例如,给用户1天观看该视频).
如果您的JavaScript客户端也在浏览器中运行,那么您可能确实存在跨域问题.我有两个想法 - 没有经过测试!一种想法是JSONP风格的方法(尽管这将限于HTTP GET调用).另一个(更有希望的)想法是将blob存储中的.js文件与您的数据文件一起托管,以便它们位于同一个域中(希望使您的Web浏览器感到满意).
"真正的"解决方案可能是跨源资源共享(CORS)支持,但在Windows Azure Blob存储中不可用,并且仍在浏览器中出现(以及其他HTML 5优点).
是的,你可以这样做,但你不希望你的天蓝色密钥在客户端可用,以便 JavaScript 能够直接访问队列。
我会让 JavaScript 与 Web 服务通信,该服务可以检查用户的访问权限并允许/禁止将消息发布到队列。
因此,JavaScript 只会与 Web 服务对话,而让 Web 服务来处理与队列的对话。
对于发布示例代码来说,这个主题有点太大,但希望这足以让您开始。
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |