当前位置: 首页 > 知识库问答 >
问题:

无法使用Azure将文件上载到Azure Blob存储。存储Blobs NuGet套装

宰父智敏
2023-03-14

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

我有过

第一步:创建一个。NET核心控制台应用程序

Azure.Storage.Blobs
Azure.Storage.Common

步骤2:创建一个名为"file"的Azure存储帐户和容器。

步骤3:在本地计算机中创建word/pdf文档。

步骤4:初始化存储连接字符串,容器名称,文件路径

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

整个方法:

 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);
    }
}

我既没有得到异常也不能上传文件。自动可视化工作室(2019)调试过程在等待Blob后停止。上传同步(filePath);

共有1个答案

堵德曜
2023-03-14

最后我明白了为什么文件没有上传到存储blob,为什么VisualStudio调试自动停止。

UploadAsync接受Stream作为输入。

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

           // Open this file and upload it to blob
            using (FileStream fileStream = File.OpenRead(filePath))
            {
                await blob.UploadAsync(fileStream);
            }
 类似资料:
  • 我相当愚蠢地上传了一个vhd到Azure文件存储,以为我可以从它创建一个虚拟机,却发现它真的需要在Blob存储中。 我知道我可以再上传一次,但它非常大,我的上传速度非常慢。 我的问题是-我可以将文件从文件存储移动到blob存储,而无需再次下载/上传吗?也就是说,Azure门户UI中是否有任何东西可以执行此操作,甚至是PowerShell命令?

  • 我想通过运行在Azure VM上的FTP服务器与用户共享Azure Blob存储中的文件。 据我所知,您不能在VM上挂载Blob存储,但可以使用“网络使用”挂载Azure文件共享。 Blob存储上的文件将以增量方式上载,因此理想情况下,我希望在上载时将其复制到Azure文件,Azure功能似乎是理想的方式,因为它们很容易为我设置和处理Blob存储上的触发器。 我如何使用Azure功能将文件从Blo

  • 但事实证明,Firebase无法从服务器端上传文件,正如它在文档中明确说明的那样: Firebase存储不包括在服务器端Firebase npm模块中。相反,您可以使用gcloud Node.js客户机。 我的第二次尝试是使用库,就像文档中提到的:

  • 我尝试用以下代码保存从internet下载的文件 但在运行时,我得到的错误如下 03-04 20:42:51.080 8972-8972/com.example.me.demo2 E/BitmapFactory:无法解码流:java.io.FileNotFoundExcoop: /storage/emulated/0/.tanks/4a100abb-0e55-4062-8c37-f11f4189e

  • 我正在尝试将我使用创建的文档上传到Azure blob存储。在本地,我可以保存文件,并使用方法将文件从本地磁盘上传到Azure。但是,我想使用Azure Function将文件直接上传到Azure存储,关于如何从方法上传到Azure存储,有什么想法吗?保存方法需要path_or_stream

  • 我正在尝试将一个图像文件从html页面上传到azure blob存储。到目前为止,我已经编写了一个web服务来为我的blob容器创建SAS。由此,我创建了一个uri,格式为“blob地址”/“容器名称”/“blob名称”?“sas”。我的html页面上有一个上传控件。 然后,我尝试使用以下代码上传该文件: 其中blobPath是上面提到的uri,upFile是我的html上传控件。 当我试图上传文