6

Me preguntaba si es posible hacer referencia a los datos de almacenamiento de blob azure en una columna de tabla de SQL Azure.Datos de almacenamiento de blobs de referencia en azul de SQL

Por ejemplo, decir que tengo una tabla llamada Usuarios en mi base de datos SQL Azure, una de las columnas de esa tabla es UserImage, y en lugar de crear UserImage como varbinary(MAX) y almacenar los datos de imagen directamente en la tabla, lo haría en su lugar desea almacenar los datos de imagen en almacenamiento de blobs, obtener una referencia a los datos de blobs y almacenar esa referencia en la columna UserImage (varchar ??) en la base de datos, y de alguna manera, al leer las filas de la tabla Usuarios, acceda datos de imagen asociados del almacenamiento blob usando la referencia a esos datos.

Estoy preguntando esto porque el almacenamiento de blob es considerablemente más barato de usar que los datos binarios/blob directamente dentro de SQL Azure.

Respuesta

3

Debería poder almacenar la URL en la imagen en SQL Azure y hacer que el programa cliente analice la URL y muestre la imagen desde la URL.

No se me ocurre ninguna forma de que SQL Azure vaya directamente al almacenamiento Blob, ni veo la necesidad de esto, ya que la mayoría de los programas cliente podrán trabajar con la URL y con el BLOB.

+0

muchas gracias. esto es lo que estaba preguntando exactamente, no estaba seguro de si era una url o guía o algo así que podría almacenar en la tabla en sql azure, y luego hacer referencia a esta url/identificador para consultar el almacenamiento de blobs para obtener la imagen . –

4

Sólo debe almacenar la imagen URL en SQL Azure, aquí es un breve fragmento de subir una imagen para el almacenamiento Blob y obtener su dirección URL:

// Fake stream that contains your image to upload 
Stream data; 

// Get a handle on account, create a blob service client and get container proxy 
var container = Account.CreateCloudBlobClient() 
        .GetContainerReference("my-fake-container"); 

// Create a blob in container and upload image bytes to it 
var blob = container.GetBlobReference("my-fake-id"); 
blob.Properties.ContentType = "image/jpeg"; 
blob.UploadFromStream(data); 

// Get your iage Url in the Blob storage 
var imageUrl = blob.Uri; 

Ahora sólo hay que almacenar imageUrl en su fila .

0

Sí .... Puede hacerlo mediante el almacenamiento de URL en SQL Azure o en algún otro lugar y luego obtener la url y pasarlo al objeto blob

void DoSthWithBlob(Uri blobUri, StorageCredentials credentials){ 
    var blob = new CloudBlob(blobUri, credentials); 
    blob.FetchAttributes();   
} 
Cuestiones relacionadas