6

Mi stavo chiedendo se è possibile fare riferimento ai dati di archiviazione BLOB BLU in una colonna di tabella SQL Azure?Dati di memoria BLOB di riferimento in SQL Azure

Per esempio, dire che ho una tabella chiamata Users nel mio database SQL Azure, una delle colonne in questa tabella è UserImage, e invece di creare UserImage come varbinary(MAX) e la memorizzazione dei dati di immagine direttamente nella tabella, vorrei preferisce invece archiviare i dati dell'immagine nella memoria BLOB, ottenere un riferimento ai dati BLOB e archiviare tale riferimento nella colonna UserImage (varchar ??) nel database e quindi in qualche modo, durante la lettura delle righe dalla tabella Utenti, accedere al dati dell'immagine associati dalla memoria BLOB utilizzando il riferimento a tali dati.

Lo sto chiedendo perché lo storage blob è molto più economico da utilizzare rispetto ai dati binari/blob direttamente in SQL Azure.

risposta

3

Dovresti riuscire a memorizzare l'URL dell'immagine in SQL Azure e fare in modo che il programma client analizzi l'URL e visualizzi l'immagine dall'URL.

Non riesco a pensare ad alcun modo per fare in modo che SQL Azure vada direttamente allo spazio di archiviazione di Blob, né vedo la necessità di questo poiché la maggior parte dei programmi client sarà in grado di funzionare sia con l'URL che con il BLOB.

+0

vi ringrazio molto. questo è quello che stavo chiedendo esattamente, non ero sicuro se fosse un url o guid o qualcosa del genere che avrei potuto memorizzare nella tabella su sql azure, e quindi fare riferimento a questo url/identificatore in seguito per interrogare l'archiviazione blob per ottenere l'immagine . –

4

Si dovrebbe solo memorizzare l'immagine URL in SQL Azure, ecco un breve frammento di caricare un immagine al Blob di archiviazione e ottenere il suo 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; 

Ora avete solo per memorizzare URL dell'immagine nella tua linea .

0

Sì .... Puoi farlo memorizzando url in SQL Azure o qualche altro posto e quindi ottenere l'url e passando all'oggetto blob

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