You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C#将文件上传至Azure数据湖存储的嵌套文件夹?

在C#中将文件上传至云存储容器的嵌套目录

云存储服务(如Azure Blob Storage)中的“嵌套目录”本质是虚拟层级结构,通过Blob对象的名称来实现(比如docs/reports/2024/sales.pdf),不需要提前创建物理目录。以下是基于主流云存储SDK的实现步骤:

1. 准备依赖(以Azure Blob Storage为例)

首先确保安装官方SDK包:

Install-Package Azure.Storage.Blobs

2. 核心实现代码

上传本地文件到嵌套路径

using Azure.Storage.Blobs;
using System;

class Program
{
    static void Main()
    {
        // 替换为你的实际配置
        string connectionString = "你的存储账户连接字符串";
        string containerName = "目标容器名称";
        string localFilePath = @"C:\local\files\sales.pdf";
        
        // 目标嵌套路径(无需提前创建目录)
        string blobNestedPath = "docs/reports/2024/sales.pdf";

        // 初始化客户端
        BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
        BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
        
        // 指定嵌套路径获取Blob客户端
        BlobClient blobClient = containerClient.GetBlobClient(blobNestedPath);
        
        // 执行上传
        try
        {
            blobClient.Upload(localFilePath, overwrite: true);
            Console.WriteLine($"文件已成功上传至嵌套路径:{blobNestedPath}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"上传失败:{ex.Message}");
        }
    }
}

上传流到嵌套路径

如果处理内存流或网络流,可使用流重载方法:

using (FileStream stream = File.OpenRead(localFilePath))
{
    blobClient.Upload(stream, overwrite: true);
}

关键说明

  • 虚拟目录自动生成:上传带有正斜杠/分隔符的Blob时,存储服务会自动识别为虚拟层级,无需手动创建目录。
  • 路径格式:统一使用正斜杠/作为路径分隔符,避免使用Windows反斜杠\。
  • 权限检查:确保你的存储账户密钥/连接字符串拥有容器的写入权限。

内容的提问来源于stack exchange,提问作者parth patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:05:30