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

使用Azure Functions上传Parquet文件流的最新SDK实现方案咨询

基于最新Azure Blob Storage SDK(v12.x)的流上传操作指引

前置依赖

  • 安装官方最新稳定版NuGet包:Install-Package Azure.Storage.Blobs
  • 提前准备好Azure存储账户连接字符串、目标容器名称

核心实现

针对「创建文件为流、无需落地本地磁盘直接上传」的需求,有两种常用实现方式:

方式1:全量生成流后上传

适合内容已经完全生成好的场景,代码如下:

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.IO;
using System.Text;

// 初始化客户端
var containerClient = new BlobContainerClient("你的存储账户连接字符串", "目标容器名");
var blobClient = containerClient.GetBlobClient("上传后的目标文件名");

// 生成内存流(也可以是任何可读流,比如网络流、文件流等)
using var stream = new MemoryStream(Encoding.UTF8.GetBytes("你要写入文件的全部内容"));

// 可选配置:指定文件类型、自定义元数据等
var uploadOptions = new BlobUploadOptions
{
    HttpHeaders = new BlobHttpHeaders
    {
        ContentType = "text/plain"
    }
};

// 执行上传
await blobClient.UploadAsync(stream, uploadOptions);

方式2:边生成内容边上传

适合需要动态生成大量内容、不想全部占用内存的场景,直接打开写入流写入即可:

using Azure.Storage.Blobs;
using System.IO;

// 初始化客户端
var containerClient = new BlobContainerClient("你的存储账户连接字符串", "目标容器名");
var blobClient = containerClient.GetBlobClient("上传后的目标文件名");

// 打开Blob写入流,直接写入动态生成的内容
await using var uploadStream = await blobClient.OpenWriteAsync(overwrite: true);
await using var writer = new StreamWriter(uploadStream);

// 动态写入内容,无需先存到本地
await writer.WriteLineAsync("第一行动态内容");
for (int i = 0; i < 1000; i++)
{
    await writer.WriteLineAsync($"批量生成的第{i+1}行内容");
}

注意事项

  • SDK默认已实现大文件自动分块上传、断点续传优化,无需手动处理底层分块逻辑
  • 传入的流无需手动关闭,SDK会在上传完成后自动管理流的生命周期
  • 如需设置访问权限、缓存策略等参数,可在BlobUploadOptions或OpenWriteAsync的参数中配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:24:02