Azure Blob体系结构/使用场景:动态博客容器和上载/查看图像

时间:2015-09-09 18:45:40

标签: javascript azure

我正在开发一个Web项目,用户需要一个专用的“工作区”来上传和查看特定于他们的图像。我目前的想法是,我会利用Azure Blob存储:

1)点击(可能在填写表格后),用户可以获得他们自己的blob容器,他们可以上传和查看他们上传的文件

2)用户将无法查看其他人的blob容器(SAS)

3)用户可以通过引用与其用户名绑定的Blob容器(稍后使用Azure移动服务来存储对用户名和他们拥有的blob的引用)来稍后登录并“在他们停止的地方”“

我有一个很难要求通过JavaScript实现这一点(我正在使用AngularJS应用程序)并将node.js作为选项包含。

我的问题如下:

1)Azure Blob存储是否适用于此类场景?

2)如何通过JavaScript以编程方式创建容器?

3)使用JavaScript(jQuery等)上传文件的首选方法是什么?我已经启用了CORS并将一个示例blob设置为Public进行测试,但仍然会收到带有PUT请求的Cross Origin错误。我需要带有公共blob的SAS吗?

4)除了PUT之外还有什么我需要覆盖现有的图像吗?

5)最重要的是:鉴于用户希望在短时间内查看上传的图像,社区是否会推荐他们的替代架构或解决方案

1 个答案:

答案 0 :(得分:1)

  

1)Azure Blob存储是否适用于诸如此类方案的正确解决方案   此?

为了在Azure中存储图像,Blob存储是最佳选择。

  

2)如何通过JavaScript以编程方式创建容器?

从技术上讲,您可以使用REST API通过JavaScript创建容器,但不建议这样做,因为只有帐户所有者才能立即创建容器(或者换句话说,需要帐户密钥才能创建容器)。你可以做的是当用户注册时在服务器端脚本中创建一个容器。

  

3)使用JavaScript(jQuery等)的首选方法是什么   上传文件?我已经启用了CORS并将样本blob设置为   公开测试,但仍然得到一个Cross Origin错误   PUT请求。我需要带有公共blob的SAS吗?

您可以使用jQuery或Angular(取决于您的舒适程度)。我写了一篇关于使用jQuery上传blob的博客文章,你可以在这里阅读:http://gauravmantri.com/2013/12/01/windows-azure-storage-and-cors-lets-have-some-fun/。我无法找到它,但我记得有人在Angular中写过同样的内容。

关于CORS错误(我也看到了您的其他问题),请尝试将允许的来源设置为"*"。出于某种原因,将原点设置为"localhost:someport"效果不佳。

您不需要SAS来阅读(下载)公共blob。但是,您需要SAS来执行上传和更改blob属性等操作。

  

4)除了PUT还有什么我需要覆盖一个   现有形象?

我不这么认为。我建议您阅读blob存储REST API,以便在请求中传递正确的标题。

  

5)最重要的是:他们的替代架构或解决方案   鉴于用户希望查看他们的内容,社区会建议   短期上传图片

就个人而言,这种架构对我来说很好。事实上,我在我的应用程序中大量使用它。但我也有兴趣听取其他人的想法。