Как загрузить файл в контейнер BLOB-объектов? - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь научиться пользоваться каплями. С этим кодом я хочу загрузить свой текстовый файл. Я не получаю ошибок. Все, что происходит, - это то, что файл не найден в контейнере. И я читал предыдущие подобные вопросы, но никто не использовал этот метод.

Что мне здесь не хватает?

using Azure.Storage.Blobs;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Upload_it_Async();
        }

        private static async void Upload_it_Async()
        {

        var filepath = @"C:\my_file.txt";
        var connectionString = ***********;
        var containerName = "my_container";

        BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
        var container = blobServiceClient.GetBlobContainerClient(containerName);
        var blockBlob = container.GetBlobClient("my_file.txt");
        using (FileStream fs = File.Open(filepath, FileMode.Open))
        {
            await blockBlob.UploadAsync(fs);
        }
    }
}
}

Ответы [ 2 ]

2 голосов
/ 30 марта 2020

Похоже, вам нужно дождаться завершения этой задачи:

static void Main(string[] args)
{
    Upload_it_Async().Wait();
}

//Change the method to Task, not void:
private static async Task Upload_it_Async()
...

См. эту ссылку для более подробного обсуждения использования asyn c в консольных приложениях.

Как отмечается в комментариях, выполнение этого гарантирует, что любые исключения будут добавлены в ваш метод Main.

0 голосов
/ 31 марта 2020

Предложите использовать приведенный ниже фрагмент кода.

static async Task Main(string[] args)
{
  await Upload_it_Async();
}

private static async Task Upload_it_Async()

А вот два хороших Azure Образца StorageBlob, на которые вы можете взять ссылку. И если у вас есть какие-либо вопросы о Azure Storage, пожалуйста, будьте свободны, дайте мне знать.

образец1

образец2

...