我希望通过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。
答案 0 :(得分:5)
我做了类似的事情,其中WCF用于授权客户端(并检查blob是否仍然存在等等)。如果一切正常,则WCF服务返回带有共享访问签名的URL - 这允许客户端直接从存储访问流。保存将blob拉到wcf角色然后从那里流式传输的交易成本。
这可能适合你吗?