AppendBlob随时追加Azure

时间:2018-01-04 07:18:48

标签: azure

我知道Azure上有一个appendblob允许我们附加块。

我无法从文档中了解到,如果可以在一个进程中创建一个appendblob。然后在一定时间后说几分钟我可以附加到这个blob?时间跨度可以是几天等吗?

我的用例如下: 我正在向服务器发送一个4MB的数据块,应该作为appendblob写入Azure存储。

然后在几秒钟内,下一个blob将上传到服务器,此时我想附加到上面创建的appendblob。

这个过程应该继续下去。关于时间的问题是blob到达那里所需的时间无法确定,因此它们都是独立的过程。同样,如果我们在几天后上传大块,会发生什么。

以上假设每个chunk都会上传所需的所有信息,例如ID等,以便附加。

非常感谢这里的一些帮助。

1 个答案:

答案 0 :(得分:0)

根据您的问题和评论,我不认为Append blob是适合您的解决方案,因为顾名思义,内容总是被追加(即添加到blob的末尾)存储服务收到的订单。

我的建议是使用Block blob并利用Put BlockGet Block ListCommit Block List功能来实现此功能。

要使用这些,首先需要为块分配一个id。块ID应基于您希望将它们添加到blob的顺序。我建议指定左边填充零的数字值(0,1,2 ......)(以便获得相同长度的块ID - 上传块的要求)。所以你的块ID将是000000,000001,000002,...,000010,......等等。

要上传块,您将使用Put Block API。块id将是块ID。上传块后,您需要致电Get Block List。这将给出已经上传并保存在blob中的所有块的列表。您将在最后上传的块中插入此块ID,对它们进行排序(非常重要),然后调用Put Block List来修改blob。

注意:由于您没有提及您正在使用的编程语言/ SDK,因此我提供了REST API文档的链接。所有这些操作都已在各种存储SDK中实现,因此您只需找到适当的方法并调用它们而不是执行REST API操作。