我对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(); // ??
CloudBlob
是CloudBlockBlob
还是CloudPageBlock
?适用哪种约束?使用该引用时,是否必须担心文件大小并放置块或页面?
我一直在阅读MSDN,但我找不到哪一个。
答案 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。