azure - 从 Azure Blob 存储容器-事件网格下载部分文件
问题描述
我正在从 Azure Blob 存储容器事件网格下载部分文件。我使用事件网格方法来获取在容器中上传的新 Blob 文件的事件。我的函数应用程序获取事件,然后我尝试从 url 下载 blob 文件。问题是如果文件大小约为 40Kb,我可以读取完整的文件,但是当大小超过 60 KB 时,它会读取不完整的部分文件。这是在 Azure 开发环境中完成的
这是在流中读取文件的简短片段:
var blobRef = container.GetBlockBlobReference(fileName);
string contentReader = string.Empty;
using (var memoryStream = new MemoryStream())
{
if (blobRef.Exists())
{
var blobRequestOptions = new BlobRequestOptions
{
ServerTimeout = TimeSpan.FromSeconds(50),
MaximumExecutionTime = TimeSpan.FromSeconds(120)
};
await blobRef.DownloadToStreamAsync(memoryStream, null,blobRequestOptions,null);
memoryStream.Position = 0;
using (var streamReader = new StreamReader(memoryStream))
{
contentReader = await streamReader.ReadToEndAsync();
}
}
return contentReader;
此代码从以下位置调用:
var dataTask = BLOBProcessingHelper.GetBlobData(container,url);
Task.WaitAll(dataTask);
var data = dataTask.Result;
解决方案
对不起,伙计们..这不是问题,实际上,我们正在跟踪 azure 日志,并且在日志中,我们正在写入我们读取的文件数据。事实证明,azure 日志流对写入日志有一些大小限制。文件被完全读取。只是日志没有写入完整的数据。:P
干杯:)
推荐阅读
- mysql - 从表中拉出一个随机值将返回一个空值
- spark-ar-studio - 如何在 Spark AR Studio 中使用 Screen Tap 将 3d 对象放置在平面上?
- python-3.x - 将多个文件上传到 SharePoint
- sqr - SQR 按位置而不是多个 IF LET ENDIF 替换
- vue.js - 用 Quasar 和 Typescript 开玩笑
- sql - 如果在字符串数组中找到特定模式并删除/修剪后缀
- docker - 如何编写可以在一个命令中运行创建 Docker 卷的脚本
- node.js - Firebase 和 Node.js 应用程序导致在此服务器上找不到 firebase serve 命令请求的 URL
- wordpress - 使重力形式隐藏字段需要?
- go - 如何修复 x509:无法验证证书
因为它不包含任何 IP SAN