Как загрузить изображение из локальной системы в хранилище BLOB-объектов Azure в C # - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь загрузить файл изображения из локальной системы в хранилище BLOB-объектов Azure с помощью c #.Ниже приведен код, который я использую:

string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);

CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("myblob");
container.CreateIfNotExists();

CloudBlockBlob blockBlob = container.GetBlockBlobReference("images");

using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
    blockBlob.UploadFromStream(filestream);
}

Я пытаюсь создать контейнер с именем myblob, который, как я вижу, создан.Внутри я создаю BLOB-объект с именем images, а затем загружаю в него файл изображения.Но я не могу увидеть файл изображения в нем.Что не так в приведенном выше коде.Как я могу загрузить файлы изображений в хранилище BLOB-объектов.Пожалуйста помоги.Спасибо

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Пожалуйста, попробуйте что-то вроде следующего:

string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);

CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("myblob");
container.CreateIfNotExists();

CloudBlockBlob blockBlob = container.GetBlockBlobReference("images/11173.jpg");
blockBlob.Properties.ContentType = "image/jpg";
using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
    blockBlob.UploadFromStream(filestream);
}

В основном код выше сохраняет 11173.jpg как images/11173.jpg.Имя BLOB-объекта на самом деле images/11173.jpg.

Или вы можете попробовать что-то вроде:

string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);

CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("myblob");
container.CreateIfNotExists();

CloudBlockBlob blockBlob = container.GetBlockBlobReference("11173.jpg");
blockBlob.Properties.ContentType = "image/jpg";
using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
    blockBlob.UploadFromStream(filestream);
}
1 голос
/ 06 июня 2019

Я думаю, что вы ошибаетесь в двух вещах.

  1. Является ли myblob вашим контейнером? GetContainerReference требует, чтобы вы передали имя контейнера, а не имя большого двоичного объекта. Я предполагаю, что имя контейнера images .
  2. GetBlockBlobReference требуется путь, включающий имя файла в контейнере изображения (blob), которое вы пытаетесь загрузить.

Это должно быть примерно так:

string storageConnectionString = "<connection_string>";
CloudStorageAccount storageacc = CloudStorageAccount.Parse(storageConnectionString);

CloudBlobClient blobClient = storageacc.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("images");
container.CreateIfNotExists();

CloudBlockBlob blockBlob = container.GetBlockBlobReference("11173.jpg");

using (var filestream = System.IO.File.OpenRead(@"C:\\Users\\John\\Desktop\\11173.jpg"))
{
    blockBlob.UploadFromStream(filestream);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...