有没有办法跟踪文件上传到Azure存储容器的进度?
我正在尝试使用C#将数据上传到Azure的控制台应用程序。
我现在coode样子:如何跟踪异步文件上传到Azure存储的进度
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
using System.Configuration;
using System.IO;
using System.Threading;
namespace AdoAzure
{
class Program
{
static void Main(string[] args)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("adokontajnerneki");
container.CreateIfNotExists();
CloudBlobClient myBlobClient = storageAccount.CreateCloudBlobClient();
CloudBlockBlob myBlob = container.GetBlockBlobReference("racuni.adt");
CancellationToken ca = new CancellationToken();
var ado = myBlob.UploadFromFileAsync(@"c:\bo\racuni.adt", FileMode.Open, ca);
Console.WriteLine(ado.Status); //Does Not Help Much
ado.ContinueWith(t =>
{
Console.WriteLine("It is over"); //this is working OK
});
Console.WriteLine(ado.Status); //Does Not Help Much
Console.WriteLine("theEnd");
Console.ReadKey();
}
}
}
这个代码PICE运作良好,但我会喜欢有某种进度条,这样用户就可以看到有这样做的任务。 WindowsAzure.Storage.Blob命名空间中是否有内置的东西,所以我可以像帽子一样使用兔子?
+100非常感谢这是优雅清晰 – adopilot
向导!非常感谢。经过数周的研究,这对我解决问题中的最后一块非常有帮助。 – spoof3r
这里只是注意到你不应该在循环内多次打开一个文件流 - 文件流应该在循环之外打开一次。 – caesay