如何在没有文件路径的情况下将文件上传到 Azure Blob 存储容器的根目录

下面的代码能够将指定目录中的文件上传localPath到 Azure Blob 存储容器。问题是文件没有放置在容器的根目录中,而是创建了与变量定义的文件路径匹配的文件夹localPath。


string localPath = @"C:\example\path\to\files";


生成的 blob 容器如下所示。


.

+-- example

|   +-- path

|       +-- to

|           +-- files

|               +-- file1.json

|               +-- file2.json

|               +-- file3.json

|               +-- file4.json

|               +-- file5.json

需要对下面的代码进行哪些更改,以便将文件移动到容器的根目录,而不是移动到与 匹配的文件夹结构中localPath?


程序.cs


namespace AzureBlobStorageFileTransfer

{

    using Microsoft.Azure.Storage;

    using Microsoft.Azure.Storage.Blob;

    using System;

    using System.IO;

    using System.Threading.Tasks;


    public static class Program

    {

        public static void Main()

        {

            ProcessAsync().GetAwaiter().GetResult();

        }


        private static async Task ProcessAsync()

        {

            CloudStorageAccount storageAccount = null;

            CloudBlobContainer cloudBlobContainer = null;

            string storageConnectionString = Environment.GetEnvironmentVariable("storageconnectionstring");


            if (CloudStorageAccount.TryParse(storageConnectionString, out storageAccount))

            {

                try

                {

                    CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();

                    cloudBlobContainer = cloudBlobClient.GetContainerReference("example");


                    BlobContainerPermissions permissions = new BlobContainerPermissions

                    {

                        PublicAccess = BlobContainerPublicAccessType.Blob

                    };

                    await cloudBlobContainer.SetPermissionsAsync(permissions);


                    string localPath = @"C:\example\path\to\files";

                    var txtFiles = Directory.EnumerateFiles(localPath, "*.json");



慕尼黑8549860
浏览 87回答 1
1回答

鸿蒙传说

您可以Path.GetFileName(currentFile)通过以下方式cloudBlobContainer.GetBlockBlobReference来完成此操作:foreach (string currentFile in txtFiles){    string currentFileName = Path.GetFileName(currentFile);    CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(currentFileName);    await cloudBlockBlob.UploadFromFileAsync(currentFile);}
打开App,查看更多内容
随时随地看视频慕课网APP