【发布时间】:2020-06-03 20:47:05
【问题描述】:
我找了又找,没有找到任何例子。
我在 C# .NET Core 中使用 Azure.Storage.Blobs nuget 包。
这是我当前不起作用的代码示例。
我得到一个状态:413(请求正文太大,超出了最大允许限制。)
搜索似乎表明存在 4mb 限制或 100mb 限制尚不清楚,但我认为附加 Blob 为 4mb,块 Blob 为 100mb。
var appendBlobClient = containerClient.GetAppendBlobClient(string.Format("{0}/{1}", tenantName, Path.GetFileName(filePath)));
using FileStream uploadFileStream = File.OpenRead(filePath);
appendBlobClient.CreateIfNotExists();
appendBlobClient.AppendBlock(uploadFileStream);
uploadFileStream.Close();
由于 4mb 的限制,这不起作用,所以我需要附加 4mb 的文件块,但我没有找到最佳方法的示例。
所以我想弄清楚的是上传大文件的最佳方式,它似乎必须以块的形式完成,对于附加 blob 可能是 4mb,对于块 blob 是 100mb,但是文档并不清楚,也没有有例子。
【问题讨论】:
-
说“它不起作用”并不是一个有用的开始。请添加错误消息等。另外,您查看过 API 文档吗? docs.microsoft.com/en-us/dotnet/api/…
-
抱歉,我已经编辑了我的问题以包含更多细节。
-
只需将
AppendBlock()与这样的东西结合起来? stackoverflow.com/a/6865956/1537195 -
只是为了仔细检查:您为什么使用 Append Blob 与 Block Blob?
-
@silent 第一次上传会有大量数据,之后只会追加增量。所以 Append Blob 对此很有意义。我只是测试了一个块blob,并且能够上传一个6gb的文件,并且从我正在读取块blob上传方法为你处理分块,并且出现AppendBlob AppendBlock方法对于附加来说不是这样我必须制作我自己的块
标签: c# azure .net-core azure-blob-storage