6

Мне просто интересно, можно ли ссылаться на данные хранения azure blob в столбце таблицы SQL Azure?Справочные данные о хранении памяти в SQL azure

Например, скажем, у меня есть таблица пользователей в моей базе данных SQL Azure, один из столбцов в этой таблице UserImage, и вместо того, чтобы создавать UserImage как varbinary(MAX) и хранить данные изображения непосредственно в таблице, я бы вместо этого, чтобы сохранить данные изображения в хранилище blob, получить ссылку на данные blob и сохранить эту ссылку в столбце (varchar ??) в базе данных, а затем как-то при чтении строк из таблицы Users получить доступ к связанные данные изображения из хранилища blob, используя ссылку на эти данные.

Я спрашиваю об этом, потому что хранилище blob значительно дешевле, чем данные двоичного/blob непосредственно в SQL Azure.

ответ

3

У вас должен быть возможность сохранить URL-адрес изображения в SQL Azure и попросить клиентскую программу проанализировать URL-адрес и отобразить изображение с URL-адреса.

Я не могу придумать, как SQL Azure может напрямую перейти в хранилище Blob, и я не вижу в этом необходимости, так как большинство клиентских программ смогут работать с URL-адресом, а также с BLOB.

+0

большое спасибо. это то, о чем я просил точно, не был уверен, что это url или guid или что-то вроде этого, которое я мог бы хранить в таблице на sql azure, а затем позже ссылаться на этот url/identifier, чтобы запросить хранилище blob, чтобы получить изображение , –

4

Вы должны просто хранить URL изображения в SQL Azure, здесь короткий фрагмент кода, чтобы загрузить изображение в Blob Storage и получить его 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

Да .... Вы можете сделать это путем сохранения URL в SQL Azure или другое место, а затем получить URL-адрес и передать его в большой двоичный объект

void DoSthWithBlob(Uri blobUri, StorageCredentials credentials){ 
    var blob = new CloudBlob(blobUri, credentials); 
    blob.FetchAttributes();   
} 
Смежные вопросы