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

Azure Blob Storage SDK v12能否本地创建Blob引用并单次上传带元数据的文件?

Azure Blob Storage SDK v12 上传带元数据文件的实现

1. 支持单次请求上传带元数据的文件

完全可以通过单次请求完成文件内容与元数据的上传,核心是利用BlobUploadOptions类传递元数据,示例代码如下:

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.Collections.Generic;

var connectionString = "your-storage-connection-string";
var containerName = "target-container";
var blobName = "uploaded-file-name";
var localFilePath = "path/to/local/file";

// 初始化客户端
var blobServiceClient = new BlobServiceClient(connectionString);
var containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobClient = containerClient.GetBlobClient(blobName);

// 定义元数据字典
var metadata = new Dictionary<string, string>
{
    { "DocumentType", "Invoice" },
    { "UploadedBy", "JohnDoe" }
};

// 构造上传选项并设置元数据
var uploadOptions = new BlobUploadOptions
{
    Metadata = metadata
};

// 单次请求完成文件+元数据上传
await blobClient.UploadAsync(localFilePath, uploadOptions);

2. 先创建Blob引用并添加元数据,再一次性上传

SDK v12中可以通过BlobClient对象预先管理元数据,再在上传时一并提交,替代v11中CloudBlockBlob.Metadata.Add的用法:

// 初始化BlobClient(即本地Blob引用)
var blobClient = containerClient.GetBlobClient(blobName);

// 直接向BlobClient的Metadata集合添加元数据
blobClient.Metadata.Add("ProjectId", "PROJ-123");
blobClient.Metadata.Add("ExpiryDate", "2024-12-31");

// 上传时传入包含已设置元数据的选项
var uploadOptions = new BlobUploadOptions
{
    Metadata = blobClient.Metadata
};

await blobClient.UploadAsync(localFilePath, uploadOptions);

说明

  • 上述两种方式均为单次HTTP请求完成上传(当文件大小未超过单个Blob的最大上传限制时,默认采用单次上传模式),元数据会作为请求头的一部分发送至Azure存储服务。
  • 若需处理大文件分片上传,同样可以在ParallelTransferOptions之外,通过BlobUploadOptions.Metadata传递元数据,最终合并分片时元数据会被应用到Blob上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:48:21