6

Tôi đã tự hỏi liệu có thể tham chiếu dữ liệu lưu trữ khối màu xanh trong cột bảng SQL Azure không? Ví dụ, giả sử tôi có một bảng được gọi là Người dùng trong cơ sở dữ liệu SQL Azure của tôi, một trong các cột trong bảng đó là UserImage và thay vì tạo UserImage làm varbinary(MAX) và lưu trữ dữ liệu hình ảnh trực tiếp trong bảng, tôi sẽ thay vì muốn lưu trữ dữ liệu hình ảnh trong bộ nhớ blob, hãy tham chiếu đến dữ liệu blob và lưu trữ tham chiếu đó trong cột UserImage (varchar ??) trong cơ sở dữ liệu, và sau đó bằng cách nào đó, khi đọc các hàng từ bảng Người dùng, hãy truy cập dữ liệu hình ảnh được liên kết từ bộ nhớ blob bằng cách sử dụng tham chiếu đến dữ liệu đó.Dữ liệu lưu trữ blob tham chiếu trong SQL azure

Tôi yêu cầu điều này vì bộ nhớ blob rẻ hơn đáng kể so với dữ liệu nhị phân/blob trực tiếp trong SQL Azure.

Trả lời

3

Bạn sẽ có thể lưu trữ URL vào hình ảnh trong SQL Azure và có chương trình khách phân tích URL và hiển thị hình ảnh từ URL. Tôi không thể nghĩ ra bất kỳ cách nào để có SQL Azure trực tiếp đi đến lưu trữ Blob, cũng không thấy tôi cần vì điều này vì hầu hết các chương trình máy khách sẽ có thể làm việc với URL cũng như với BLOB.

+0

thank you very much. đây là những gì tôi đã yêu cầu chính xác, không chắc đó là url hay guid hay thứ gì đó như thế này tôi có thể lưu trữ trong bảng trên sql azure, và sau đó tham chiếu url/nhận dạng này sau đó để truy vấn lưu trữ blob để lấy hình ảnh . –

4

Bạn chỉ nên lưu trữ các hình ảnh Url trong SQL Azure, đây là một đoạn ngắn để tải lên một hình ảnh để Storage Blob và nhận Url của nó:

// 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; 

Bây giờ bạn chỉ cần có để lưu trữ imageurl trong hàng của bạn .

0

Có .... Bạn có thể làm điều đó bằng cách lưu trữ url trong SQL Azure hoặc một số nơi khác và sau đó nhận được url và đi qua nó để đối tượng blob

void DoSthWithBlob(Uri blobUri, StorageCredentials credentials){ 
    var blob = new CloudBlob(blobUri, credentials); 
    blob.FetchAttributes();   
} 
Các vấn đề liên quan