0

我正在尝试使用 C# 使用 .NET Core (V3.1) 控制台应用程序将示例 doc 文件上传到 azure 存储 blob。我在本地运行 Visual Studio 2019 中的控制台应用程序。

我有

第 1 步:创建了一个 .NET Core 控制台应用程序和安装了 Nuget 包

Azure.Storage.Blobs
Azure.Storage.Common

步骤 2:创建一个名为:“文件”的 Azure 存储帐户和容器

Step3:在本地机器上创建一个word/pdf文档。

Step4:初始化存储连接字符串、容器名、文件路径

Step5:在控制台应用程序中上传文件然后在本地调试以进行测试的代码。

整个方法:

 public static async Task upload_ToBlob(string storageAccount_connectionString, string fileToUpload, string containerName)
    {

        try
        {
            Console.WriteLine("Inside upload method");

            // Get a reference to a container named "sample-container" and then create it
            BlobContainerClient blobContainerClient = new BlobContainerClient(storageAccount_connectionString, containerName);

            // Get a reference to a blob named "fileToUpload" in a container named "files"
            string filename_withExtension = Path.GetFileName(fileToUpload);
            BlobClient blob = blobContainerClient.GetBlobClient(filename_withExtension);

            // Upload local file
            await blob.UploadAsync(fileToUpload);
            Console.WriteLine("Upload Completed!");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }



  class Program
  {
    static async Task Main()
    {
        string storageAccount_connectionString = "DefaultEndpointsProtocol=https;AccountName=sghackathondemo;AccountKey=kCzwrMVmG8r4E9d1q9LKA0W8OuCtPp3WWbeBWoMfyW/6idSN0wPPU+QBnBVndAv+v9tS63gcnpUY1R1CnsHB8A==;EndpointSuffix=core.windows.net";
        string storageAccount_ContainerName = "files";
        string filePath = @"D:\Learning\test.txt";

        await upload_ToBlob(storageAccount_connectionString, filePath, storageAccount_ContainerName).ConfigureAwait(false);
    }
}

我既没有遇到异常也无法上传文件。在等待 blob.UploadAsync(filePath)后自动停止 Visual Studio (2019) 调试过程;

4

1 回答 1

0

最后我明白了为什么文件没有上传到存储 blob 以及为什么 Visual Studio 调试会自动停止。

UploadAsync接受 Stream 作为输入。

通过以下小代码片段更改,它可以正常工作。

           // Open this file and upload it to blob
            using (FileStream fileStream = File.OpenRead(filePath))
            {
                await blob.UploadAsync(fileStream);
            }
于 2021-10-17T06:31:54.577 回答