6

我只是想知道是否可以在SQL Azure表列中引用azure blob存儲數據?在SQL Azure中引用blob存儲數據

例如,假設我有一個表叫用戶在我的SQL Azure數據庫,該表中的一列是UserImage,而不是創建UserImage作爲varbinary(MAX),並在表中的圖像數據直接存儲的,我會而是喜歡將圖像數據存儲在blob存儲中,獲取對blob數據的引用並將該引用存儲在數據庫中的UserImagevarchar ??)列中,然後以某種方式在讀取Users表中的行時訪問使用對該數據的引用從blob存儲器關聯的圖像數據。

我在問這個問題,因爲在SQL Azure中,blob存儲比使用二進制/ blob數據要便宜得多。

回答

3

您應該可以將URL存儲到SQL Azure中的圖像,並讓客戶端程序解析URL並顯示URL中的圖像。

我想不出有什麼辦法讓SQL Azure直接進入Blob存儲,也沒有看到這種需求,因爲大多數客戶端程序都能夠使用URL以及BLOB。

+0

非常感謝你。這正是我所要求的,不知道它是一個url還是guid或者我可以在sql azure的表中存儲的東西,然後稍後引用此URL /標識以查詢blob存儲以獲取映像。 – 2012-01-06 14:59:50

4

你應該圖片的網址只是存儲在SQL Azure中,這裏是一個小片段的圖像上傳到Blob存儲和獲取它的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; 

現在您只需要存儲IMAGEURL你行。

0

是....你可以做到這一點通過存儲在SQL Azure中的網址或其他一些地方,然後讓URL並把它傳遞給blob對象

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