Azure Blob架构/使用场景:动态博客容器和上传/查看图像

Azure Blob Architecture/Usage Scenario: Dynamic Blog Containers and Uploading/Viewing Images

本文关键字:图像 动态 架构 Blob Azure      更新时间:2023-09-26

我正在研究一个Web项目,用户需要一个专用的"工作区"来上传和查看特定于他们的图像。我目前的想法是,我将利用Azure Blob存储,其中:

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

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

3)用户可以稍后登录,并通过引用与用户名绑定的Blob容器"从他们离开的地方捡起"(我设想使用Azure移动服务来存储对用户名和他们拥有的Blob的引用)

我有一个很难实现的要求,通过JavaScript(我使用的是一个AngularJS应用程序),并将包括node.js作为一个选项。

我的问题如下:

1) Azure Blob Storage是这种场景的正确解决方案吗?

2)我将如何通过JavaScript编程创建容器?

3)使用JavaScript (jQuery等)上传文件的首选方法是什么?我已经启用了CORS,并将样本blob设置为Public进行测试,但我仍然通过PUT请求获得交叉原点错误。我需要带有公共blob的SAS吗?

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

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

1) Azure Blob Storage是以下场景的正确解决方案这个吗?

对于在Azure中存储图像,Blob Storage是最好的地方。

2)我将如何通过JavaScript编程创建容器?

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

3)使用JavaScript (jQuery等)的首选方法是什么上传文件?我已经启用了CORS并设置了一个样例blob公共测试,但我仍然得到一个交叉原点错误与把请求。我需要带有公共blob的SAS吗?

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

关于CORS错误(我也看到了你的其他问题),尝试将允许的起源设置为"*"。由于某些原因,将origin设置为"localhost:someport"不能很好地工作。

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

4)除了PUT之外,我是否需要覆盖一个现有的图像?

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

5)最重要的是:它们是可选择的架构或解决方案吗鉴于用户希望查看他们的按短时间顺序上传图片

就我个人而言,这个架构看起来不错。事实上,我在我的申请中大量使用了它。但是我也很想听听其他人的想法。