Как загрузить файлы из хранилища BLOB-объектов Azure из ASP.NET MVC5 - PullRequest
0 голосов
/ 29 мая 2018

enter image description here

У меня есть возможность загружать файлы из моего хранилища BLOB-объектов из веб-приложения.

Как только я получу свой список хранилища BLOB-объектов Azure, он не будет загружен.

Ошибка при загрузке BLOB-объекта загрузки.

Буду признателен, если вы посмотрите на мой код и дадите мне знать, в чем проблема.

public string DownloadBlob()
    {
        CloudBlobContainer container = GetCloudBlobContainer();
        CloudBlockBlob blob = container.GetBlockBlobReference("myBlob");
        using (var fileStream = System.IO.File.OpenWrite(@"C:\BlobTest"))
        {
            blob.DownloadToStream(fileStream);
        }
        return "success!";
    }

1 Ответ

0 голосов
/ 29 мая 2018

Я протестировал ваш код, и он работает в моем веб-приложении MVC, как показано ниже.

    public ActionResult Download()
    {

        ContentResult contentResult = new ContentResult();
        contentResult.Content = DownloadBlob();
        return contentResult;
    }

    public static string DownloadBlob()
    {
        try
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=leeliublob;AccountKey=O7xB6ebGq8e86XQSy2vkvSi/x/e9l9FhLqayXcbz1R+E0mIcJ5Wjkly1DsQPYY5dF2JrAVHtBozbJo29ZrrGJA==;EndpointSuffix=core.windows.net");
            CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();

            CloudBlobContainer container = cloudBlobClient.GetContainerReference("mycontainer");
            CloudBlockBlob blob = container.GetBlockBlobReference("4.PNG");
            using (var fileStream = System.IO.File.OpenWrite(@"C:\Test\BlobTest.PNG"))
            {
                blob.DownloadToStream(fileStream);
            }
            return "success!";
        }
        catch(Exception ex)
        {
            return ex.StackTrace;
        }


    }

Я думаю, что это проблема с разрешением вашего приложения MVC.

Ваш MVCПриложение может использовать виртуальную учетную запись IIS, как показано ниже, оно может не иметь доступа к вашему диску C.enter image description here

Чтобы решить эту проблему, есть два способа:

  1. Пожалуйста, попробуйте загрузить на другой диск, например, "E" или "D ".

  2. Пожалуйста, добавьте группу пользователей" Прошедшие проверку "в этот файл или папку, как показано ниже.

enter image description here

Обновление:

Я воспроизвел вашу проблему, как показано ниже:

enter image description here

Нам нужно создать папку в корневом каталоге диска C, как показано ниже, поскольку у вашего веб-приложения нет прав доступа к корневому каталогу диска C:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...