Azure存储Blob:GetBlobReference()可以获得什么样的blob?

时间:2011-02-04 00:04:12

标签: azure blob azure-storage azure-storage-blobs

我对blob感到有些困惑。我读过一些文章说有两种blob,块和页面,但我可以在SDK的库中看到第三种:

container.GetBlockBlobReference(); // Block Blob, max 64Mb per block,  max 200Gb in total.
container.GetPageBlobReference(); // Page Blob, aligned to 512bytes pages,  max 1Tb in total.
container.GetBlobReference(); // ??

CloudBlobCloudBlockBlob还是CloudPageBlock?适用哪种约束?使用该引用时,是否必须担心文件大小并放置块或页面?

我一直在阅读MSDN,但我找不到哪一个。

2 个答案:

答案 0 :(得分:14)

GetBlobReference会返回CloudBlob个对象。这可以代表任何一种blob。 .ToPageBlob.ToBlockBlob属性将有助于转换对象,但这与存在的blob类型无关。存在的blob是一种类型或另一种,在创建时指定。

如果您在.Create对象上调用CloudPageBlob,则会导致在Windows Azure中创建页面blob。

如果您在.UploadText()(或通用BlockBlobObject对象上)调用CloudBlob,则会导致在Windows Azure中创建阻止blob。

换句话说,GetBlobReference会返回对blob的通用引用(不是任何一种类型)。

答案 1 :(得分:2)

使用通用CloudBlob对象时,似乎始终在Azure上创建块blob。但是,您可以使用该类从存储中检索块blob和页面blob。