Сохраняйте изображения из клиента в Azure хранилище - PullRequest
1 голос
/ 07 апреля 2020

У меня есть следующий код. Это не дает мне никаких ошибок, но у меня нет изображения в папке в Azure хранилище.

            var bytes = person.Image.GetBytes();
        MemoryStream ms = new MemoryStream(bytes.Result);
  var storageCredentials = new StorageCredentials("AccountName", "***/pEYRskVHuAtUhcvLT/Ct*****/71lLMUCgTybnm****B4WO/AGFe****==");
        var cloudStorageAccount = new CloudStorageAccount(storageCredentials, true);
        var cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();

        var container = cloudBlobClient.GetContainerReference("https://*********.blob.core.windows.net/images");

        var newBlob = container.GetBlockBlobReference("myfile.jpg");
        newBlob.UploadFromStreamAsync(ms);

Что мне делать здесь? У меня есть пустое изображение в магазине?

private async Task UploadFile(string path,Stream stream)
        {

        CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=f********ge1;AccountKey=w9S**************==;EndpointSuffix=core.windows.net");

        // Create the blob client.
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

        // Retrieve reference to a previously created container.
        CloudBlobContainer container = blobClient.GetContainerReference("images");

        // Retrieve reference to a blob named "myblob".
        CloudBlockBlob blockBlob = container.GetBlockBlobReference("img.jpg");
        blockBlob.Properties.ContentType = "image/jpeg";

        // Create or overwrite the "myblob" blob with contents from a local file.
        using (var fileStream = stream)
        {
            await blockBlob.UploadFromStreamAsync(fileStream);
        }

    }

1 Ответ

1 голос
/ 07 апреля 2020

Скорее всего, вы столкнулись с этой проблемой, потому что вы вызываете операцию async и не ожидаете ее завершения:

newBlob.UploadFromStreamAsync(ms);

Это можно исправить, подождав, пока эта операция fini sh используя что-то вроде:

ms.Position = 0;
await newBlob.UploadFromStreamAsync(ms);

или использование sync версии того же метода:

ms.Position = 0;
newBlob.UploadFromStream(ms);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...