用于托管图像/媒体的Azure Blob存储 - 使用blob URL(无中间控制器)获取

时间:2017-06-27 19:02:03

标签: azure asp.net-web-api azure-storage azure-storage-blobs azure-blob-storage

this文章中,作者提供了一种通过WebAPI控制器上传的方法。这对我来说很有意义。

然后,他建议使用API​​控制器和专用服务方法来提供blob:

uchar2

我的问题是 - 为什么我们只能在将blob URL存储到数据库中后直接引用blob URL(而不是通过Blob ID获取)?

通过像这样的控制器获取的好处是什么?

2 个答案:

答案 0 :(得分:2)

您当然可以直接发送blob,然后避免使用您的应用层资源(虚拟机,应用服务等)。请注意,如果blob是私有的,则必须向客户端应用程序提供特殊的签名URI(例如,添加共享访问签名)以允许此URI公开使用(暂时一段时间)。您将在应用层中生成SAS。

您仍然拥有控制器中的所有访问控制逻辑,以确定谁拥有对象的权限,持续时间等等。但您不再需要通过应用程序流式传输内容(使用cpu,内存和网络资源)。您仍然可以使用https直接存储访问权限。

答案 1 :(得分:1)

很简单,您可以在使用控制器时集中实施访问控制。您可以更好地控制访问文件的人/内容/原因。您也可以非常轻松地记录请求。

从长远来看,您可能希望更改文件的位置,添加分区策略以实现可扩展性,或者在您的应用中执行其他需要更改但您现在还未看到的内容。使用控制器时,您可以将客户端代码与所有这些不可避免的更改隔离开来。