直接从WCF服务返回Azure Blob流

时间:2011-11-26 16:59:46

标签: c# wcf azure-storage-blobs

我希望通过WCF将Azure Blob Storage中的流直接返回到浏览器。 基本上我有一个REST WCF服务,我希望用户通过该服务下载文件,而文件存储在Azure Blob存储中。

在这个问题中

Returning Azure BLOB from WCF service as a Stream - Do we need to close it?

它做了我喜欢的事情然而它首先将整个文件下载到新流,是否有办法将blob流作为来自WCF的返回流,因此WCF更像是流的代理?

我的问题是大文件(> 10MB),我真的不想从Azure存储中下载整个流,然后才开始将其返回给用户。

我这样做的原因是我在允许访问存储在Azure Blob存储中的文件之前对我的用户进行了一些安全检查,还有一些文件的大小可能高达1GB。

1 个答案:

答案 0 :(得分:5)

我做了类似的事情,其中​​WCF用于授权客户端(并检查blob是否仍然存在等等)。如果一切正常,则WCF服务返回带有共享访问签名的URL - 这允许客户端直接从存储访问流。保存将blob拉到wcf角色然后从那里流式传输的交易成本。

这可能适合你吗?