2011-02-04 15 views
8

Me estoy confundiendo un poco con blobs. He leído algunos artículos que dice que hay dos tipos de manchas, bloques y páginas, pero puedo ver en la biblioteca del SDK de un tercero:Blobs de almacenamiento de Azure: ¿qué tipo de blob recibo con 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(); // ?? 

Es un CloudBlobCloudBlockBlob o una CloudPageBlock? ¿Qué restricciones aplica? ¿Debo preocuparme por el tamaño del archivo y poner bloques o páginas cuando uso esa referencia?

He estado leyendo MSDN pero no puedo encontrar cuál es.

Respuesta

13

GetBlobReference le devuelve un objeto CloudBlob. Eso puede representar cualquier tipo de blob. Las propiedades .ToPageBlob y .ToBlockBlob ayudarán a emitir el objeto, pero eso no tiene nada que ver con el tipo del blob que existe. El blob que existe es de un tipo u otro, especificado al crearlo.

Si llama al .Create en un objeto CloudPageBlob, se creará un blob de página en Windows Azure.

Si llama al .UploadText() en un BlockBlobObject (o un objeto genérico CloudBlob), eso dará como resultado que se cree un blob de bloque en Windows Azure.

En otras palabras, GetBlobReference le devuelve una referencia genérica a un blob (no a ningún tipo).

+0

¿Y qué es una referencia genérica a un bloque? ¿Qué restricciones aplica? – vtortola

+1

Compruebo la propiedad blob.Properties.BlobType y dice: PageBlob – vtortola

+0

Haz algo con el blob real (como .FetchAttributes()) y luego ve lo que dice .BlobType. Debería establecerse en lo que sea que esté el blob. – smarx

2

Parece que siempre crea un blob de bloque en Azure cuando utiliza el objeto genérico CloudBlob. Sin embargo, puede recuperar blobs de bloque y blobs de página del almacenamiento utilizando esa clase.

+0

He comprobado la propiedad blob.Properties.BlobType, y dice: PageBlob – vtortola

Cuestiones relacionadas