问题描述
我正在从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;
解决方法
对不起,..这不是问题,实际上,我们正在跟踪蔚蓝的日志,在日志中,我们正在写入读取的文件数据。事实证明,天蓝色日志流对写入日志有一些大小限制。文件已被完全读取。只是日志没有写完整的数据。 :P
欢呼:)