Я установил приватные контейнеры для хранения больших двоичных объектов * 1015, и у меня есть общий ключ доступа, который я определил в своем основном приложении asp. net. Для заданий, таких как перечисление содержимого хранилища больших двоичных объектов, это работает хорошо, но теперь я чувствую, что мне нужно вернуть файл изображения для отображения в моем представлении. Проблема в том, что когда я возвращаю большой двоичный объект, да, я могу получить к нему доступ в контроллере, но он просто возвращает строку в ее местоположение, доступ к этому местоположению без ключа доступа возвращает ошибку Resource not found
, что ожидается.
Мой вопрос: как вернуть блоб изображения, для которого требуется общий ключ доступа? Вот мой код, который возвращает Uri только в виде строки, которая бесполезна по вышеуказанной причине. Нужно ли загружать изображение и хранить его временно или что-то?
Использование CarController
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
CarController.cs
[HttpGet]
public IActionResult Edit(int id)
{
var car = _carService.GetCar(id);
string strContainerName = "uploads";
string filePrefix = "car/" + id + "/car-image.jpg";
var filelist = new List<BlobListViewModel>();
BlobServiceClient blobServiceClient = new BlobServiceClient(accessKey);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(strContainerName);
//Get the specific image
var blob = containerClient.GetBlobClient(filePrefix);
//I'm binding to a view model as a string, which, as I say, doesn't work for security reasons.
var data = new BlobListViewModel {
FileName = blob.Uri.ToString()
};
return View(data);
}