【发布时间】:2016-06-20 12:51:09
【问题描述】:
是否存在允许使用 C# api 的 blob(块、页面等)形式?机器 X 可能正在将文件上传到 azure blob 端点,机器 Y 正在实时读取文件。在我看来,块 blob 不起作用,因为您需要先放置块列表,然后才能查询它的 http 端点,但是有没有办法查询未提交的块并事先下载这些块?
实践中的一个例子是,用户机器与服务器握手,从服务器获取写入共享访问令牌和上传文件的权限。客户端 #1 机器开始上传 - 现在说,第二台客户端机器从服务器请求文件,但客户端 #1 尚未完成上传。在这种情况下,客户端 #2 将从服务器获取相关详细信息,以及只读共享访问令牌,然后在上传尚未完成的情况下开始读取文件。
【问题讨论】:
-
machine Y会知道正在上传 blob 吗?你能用一个例子来描述你的要求吗? -
@GauravMantri:我添加了一个具体的例子。
-
您阅读过有关附加 blob 的文档吗?我认为一个设计良好的附加 blob 上传过程可以满足您的要求。
-
谢谢。根据我对块 blob 的理解,我倾向于拒绝,但我想先自己尝试一下。将很快回复正确答案。关于附加 Blob,可以这样做,但附加 Blob 用于不同目的(存储日志等,其中始终附加最新内容),因此可能不适合所有用例。
-
@JackZeng:附加 blob 并没有真正的“结束”概念,它是永无止境的,但在这种情况下并非如此。客户端完成上传后,它将永远不会再次附加 - 我认为它不适合这个原因。我认为 Page Blob 和 Block Blob 都可以做到(尽管 Page Blob 可能更适合),我只是不确定如何实现它。请记住,在此过程中,服务器和两个客户端都可以相互通信。
标签: c# .net azure azure-storage