2011-02-04 3 views
8

Я немного запутался с каплями. Я читал некоторые статьи, которые говорят, что есть два вида клякс, блоков и страниц, но я могу видеть в библиотеке SDK, третья:Azure Storage Blobs: какой blob я получаю с GetBlobReference()?

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, но я не могу найти, какой именно.

ответ

13

GetBlobReference возвращает вас CloudBlob объект. Это может представлять любой вид blob. Свойства .ToPageBlob и .ToBlockBlob помогут в литье объекта, но это не имеет никакого отношения к типу существующего blob. Блад, который существует, имеет один тип или другой, указанный при его создании.

Если вы вызываете .Create на объект CloudPageBlob, это приведет к созданию страницы, которая создается в Windows Azure.

Если вы вызываете .UploadText() на BlockBlobObject (или общий объект CloudBlob), это приведет к созданию блочного блоба, создаваемого в Windows Azure.

Другими словами, GetBlobReference возвращает вам общую ссылку на blob (не для любого типа).

+0

И что такое общая ссылка на блок? какие ограничения применяются? – vtortola

+1

Я проверяю свойство blob.Properties.BlobType, и он говорит: PageBlob – vtortola

+0

Сделайте что-нибудь с фактическим blob (например .FetchAttributes()), а затем посмотрите, что говорит .BlobType. Он должен быть настроен на все, что есть в блобе. – smarx

2

Кажется, что всегда создается блок-блок на Azure, когда вы используете общий объект CloudBlob. Однако вы можете извлекать блочные блобы и капли страниц из хранилища с помощью этого класса.

+0

Я проверяю свойство blob.Properties.BlobType, и он говорит: PageBlob – vtortola

Смежные вопросы