在this文章中,作者提供了一种通过WebAPI控制器上传的方法。这对我来说很有意义。
然后,他建议使用API控制器和专用服务方法来提供blob:uchar2
我的问题是 - 为什么我们只能在将blob URL存储到数据库中后直接引用blob URL(而不是通过Blob ID获取)?
通过像这样的控制器获取的好处是什么?
答案 0 :(得分:2)
您当然可以直接发送blob,然后避免使用您的应用层资源(虚拟机,应用服务等)。请注意,如果blob是私有的,则必须向客户端应用程序提供特殊的签名URI(例如,添加共享访问签名)以允许此URI公开使用(暂时一段时间)。您将在应用层中生成SAS。
您仍然拥有控制器中的所有访问控制逻辑,以确定谁拥有对象的权限,持续时间等等。但您不再需要通过应用程序流式传输内容(使用cpu,内存和网络资源)。您仍然可以使用https
直接存储访问权限。
答案 1 :(得分:1)
很简单,您可以在使用控制器时集中实施访问控制。您可以更好地控制访问文件的人/内容/原因。您也可以非常轻松地记录请求。
从长远来看,您可能希望更改文件的位置,添加分区策略以实现可扩展性,或者在您的应用中执行其他需要更改但您现在还未看到的内容。使用控制器时,您可以将客户端代码与所有这些不可避免的更改隔离开来。