用于流数据的云存储API

时间:2011-07-15 22:02:39

标签: amazon-s3 azure-storage google-cloud-storage cloud-storage

什么是可以很好地容纳流数据的云数据存储API?

具体而言,可以随时读取以下常量数据流:1)没有已知结束并且连续附加到2)。

由于分布式访问的性质,Amazon S3,Google Storage for Developers和Windows Azure Blob等大型云存储选项似乎不支持流数据。

目前的信念:

1)Amazon S3不允许对对象进行附加操作(仅替换)。分段上传API允许“流式”上传,但需要在完全写入后“完成”。

2)Google Storage对象是不可变的,所以同样如此。

3)Windows Azure博客存储具有块存储,但与Amazon S3分段上传一样,要求块“最终化”,因此无法使用开放式流。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用Windows Azure blob存储,只要您愿意,您可以继续附加到同一个blob(并在每次写入后提交阻止列表),并且您可以在读取时请求任何字节范围。但是,您仍然无法获得数据不断向下流式传输的单个HTTP请求的行为。 (你必须请求一个范围,然后再为下一个范围提出另一个请求,等等。换句话说,在任何给定的时间,blob的长度都是有限的。)

如果我正确理解要求,构建您自己的代码来预先处理数据(基于套接字或可能是分块的HTTP响应)可能是您唯一的选择。

答案 1 :(得分:0)

您想要的是Windows Azure Page Blob,而不是Block Blob。有关页面blob的信息,请参阅:http://msdn.microsoft.com/en-us/library/windowsazure/ee691964.aspx

使用Page Blob,您将能够附加到现有blob,主要考虑因素是您必须编写整个512字节页面,因此如果您附加到现有文件,则可能还需要发送最多511个字节来自文件末尾的现有数据。