C# Azure SDK上传文件至PageBlob的非hacky简便实现方案咨询
Azure PageBlob C# 内置上传方案说明
Azure官方的.NET Storage SDK 原生提供了无需手动处理分片、字节对齐的PageBlob上传实现,完全不需要你自己实现补零、拆分分片的逻辑,属于官方支持的标准实现,非hack方案。
针对当前你使用的v11及更早版本SDK(CloudPageBlob类所属的版本)
你写的手动逻辑完全可以直接替换成内置的UploadFromByteArray方法,原生方法内部已经自动完成512字节对齐补零、4MB分片上传、自动创建对应大小PageBlob的全部逻辑,直接调用即可:
byte[] bytes = (encoding ?? Encoding.UTF8).GetBytes(content); // 直接调用即可,不需要手动补零、拆分分片、手动创建PageBlob cloudPageBlob.UploadFromByteArray( bytes, 0, bytes.Length, accessCondition, options, operationContext);
如果你需要调整分片大小、并发上传数,可以在BlobRequestOptions参数里配置ParallelOperationThreadCount、SingleBlobUploadThresholdInBytes参数即可。
针对官方目前主推的v12版本Azure.Storage.Blobs SDK
使用PageBlobClient类的Upload/UploadAsync方法即可,原生支持所有自动处理逻辑,示例如下:
using Azure.Storage.Blobs.Specialized; using System.Text; // 初始化PageBlobClient PageBlobClient pageBlobClient = new PageBlobClient(connectionString, containerName, blobName); byte[] bytes = (encoding ?? Encoding.UTF8).GetBytes(content); // 直接上传即可,自动处理对齐、分片 pageBlobClient.Upload(BinaryData.FromBytes(bytes));
如果需要自定义配置,可以传入PageBlobUploadOptions参数调整分片大小、并发数、访问条件等配置。
内容的提问来源于stack exchange,提问作者Node.JS
相关产品推荐
相关产品推荐

