将块 blob 上传到 Azure 时出现“请求正文太大并超出最大允许限制”

Mir*_*lad 2 c# azure azure-storage azure-sdk-.net azure-blob-storage

我正在尝试将 300GB 的文件上传到 Azure Blob 存储。下面是我正在使用的代码:

// content = array of bytes ~ 300 GB
using (var stream = new MemoryStream(content))
{
      var blobRequestOptions = new BlobRequestOptions
      {
          ParallelOperationThreadCount = Microsoft.WindowsAzure.Storage.Shared.Protocol.Constants.MaxParallelOperationThreadCount
      };
      blob.UploadFromStream(stream, options: blobRequestOptions);
}
Run Code Online (Sandbox Code Playgroud)

此操作失败并显示以下消息错误:

请求正文太大,超出了最大允许限制

Dav*_*gon 5

我相信问题(根据确认旧 SDK 版本的评论)是客户端 SDK 版本号。从 v8.0 开始,支持大(200GB -> 4.77TB)块 blob 大小(块现在高达 100MB,而旧的 4MB 限制)。50,000 块限制仍然适用(因此,100MB x 50,000 块提供 4.77TB 大小)。

之前的 SDK 版本限制为 4MB 块,200GB 块 blob 大小限制。

.NET 客户端库(8.0.0 版)、Java 客户端库(5.0.0 版)、Node.js 客户端库(2.0.0 版)和 AzCopy 命令的最新版本支持更大的块 Blob -Line 实用程序(版本 5.2.0)。您也可以像往常一样直接使用 REST API。REST API 版本 2016-05-31 及更高版本支持更大的块 Blob。

更多信息在这里