Справочное хранилище данных BLOB в SQL Azure - PullRequest
7 голосов
/ 06 января 2012

Мне просто интересно, можно ли ссылаться на данные хранилища BLOB-объектов Azure в столбце таблицы SQL Azure?

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

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

Ответы [ 3 ]

5 голосов
/ 06 января 2012

Вам просто нужно сохранить URL-адрес изображения в 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 в своемстроки.

3 голосов
/ 06 января 2012

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

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

0 голосов
/ 21 сентября 2016

Да .... Это можно сделать, сохранив URL-адрес в SQL Azure или другом месте, а затем получив URL-адрес и передав его объекту BLOB-объекта

void DoSthWithBlob(Uri blobUri, StorageCredentials credentials){
    var blob = new CloudBlob(blobUri, credentials);
    blob.FetchAttributes();           
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...