首页 > 解决方案 > 从 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;

标签: azurefunctionblobazure-eventgrid

解决方案


对不起,伙计们..这不是问题,实际上,我们正在跟踪 azure 日志,并且在日志中,我们正在写入我们读取的文件数据。事实证明,azure 日志流对写入日志有一些大小限制。文件被完全读取。只是日志没有写入完整的数据。:P

干杯:)


推荐阅读