为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕尼黑8549860 2024-01-20 21:02:22
下面的代码能够将指定目录中的文件上传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?程序.csnamespace 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");
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您可以Path.GetFileName(currentFile)通过以下方式cloudBlobContainer.GetBlockBlobReference来完成此操作:


foreach (string currentFile in txtFiles)

{

    string currentFileName = Path.GetFileName(currentFile);

    CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(currentFileName);

    await cloudBlockBlob.UploadFromFileAsync(currentFile);

}


查看完整回答
反对 回复 2024-01-20
  • 1 回答
  • 0 关注
  • 31 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信