c# - 显示上传到 Azure BLOB 的进度
问题描述
以下代码演示了将文件上传到 Azure BLOB。因此,我将上传更大的文件,由于低带宽问题(在SO中讨论),我有上传失败的风险。
以下代码可以正常工作,但我需要一种以百分比的形式向最终用户显示上传进度的方法。如何修改我的代码以使其成为可能?
BlobUploadOptions op = new BlobUploadOptions
{
TransferOptions = new StorageTransferOptions
{
MaximumTransferSize = 4 * 1024 * 1024,
InitialTransferSize = 4 * 1024 * 1024,
MaximumConcurrency= 5
},
HttpHeaders = new BlobHttpHeaders
{
ContentType = request.Request.ContentType
}
};
Azure.Response<BlobContentInfo> ci = await
blobClient.UploadAsync(fileStream, op);
解决方案
请尝试以下操作:
//Define a progress handler.
class MyProgressHandler : IProgress<long>
{
public void Report(long value)
{
//Do something to report the progress. I am simply printing the bytes uploaded.
Console.WriteLine($"Bytes uploaded: {value}");
}
}
//Use the progress handler in your upload options.
BlobUploadOptions op = new BlobUploadOptions
{
TransferOptions = new StorageTransferOptions
{
MaximumTransferSize = 4 * 1024 * 1024,
InitialTransferSize = 4 * 1024 * 1024,
MaximumConcurrency= 5
},
HttpHeaders = new BlobHttpHeaders
{
ContentType = request.Request.ContentType
},
ProgressHandler = new MyProgressHandler()
};
推荐阅读
- java - 始终应用的方法的第一个模拟
- angular - 如何在 Angular 中使用向下和向上箭头键遍历自动建议选项
- angular - ng build :无法加载工作区配置文件
- docker - Docker 容器中的 Emacs 无法连接到 MELPA
- vue.js - routes:[] 中的 name 选项实际上指的是什么(Vue.js CLI3)?
- bash - PostgreSQL 将查询作为字符串而不是 sql 文件运行
- java - 如何生成字段并初始化值
- html - 将 FontAwesome 图标对齐到
- python - 如何在不运行服务器的情况下设置 django
- amazon-web-services - Terraform:数据源 aws_instance 不起作用