Azure数据移动库 - Blob下载卡住

时间:2017-07-13 18:20:26

标签: azure azure-blob-storage

在我们的prod环境中,我们正在下载blob,有时我看到一个文件下载大约60%的行为然后没有任何反应。它没有错误输出也没有返回。发生这种情况后,下载将无限期地停止。写入文件的句柄不会被释放。我假设在StartSchedule()TransferScheduler方法中创建的任务无限期地运行。转储没有透露任何东西。有没有办法弄清楚可能是什么问题? 我使用的是版本0.5.0

1 个答案:

答案 0 :(得分:0)

我创建了一个C#控制台项目,但我无法重现您提到的问题,即使我使用4G大小的文件进行测试。我使用Microsoft.Azure.Storage.DataMovement SDK版本0.5.0和0.6.0进行测试。以下是我用于测试的代码。

   string storageConnectionString = "connection string";
   CloudStorageAccount account = CloudStorageAccount.Parse(storageConnectionString);
   CloudBlobClient blobClient = account.CreateCloudBlobClient();
   CloudBlobContainer blobContainer = blobClient.GetContainerReference("container name");
   blobContainer.CreateIfNotExists();
   string destPath = "file path";
   CloudBlockBlob sourceBlob = blobContainer.GetBlockBlobReference("blob name");
   TransferManager.Configurations.ParallelOperations = 64;
   // Setup the transfer context and track the download progress
   SingleTransferContext context = new SingleTransferContext
   {
        ProgressHandler = new Progress<TransferStatus>(progress =>
        {
                Console.WriteLine("Bytes download: {0}", progress.BytesTransferred);
        })
    };
    // download thee blob
    var task = TransferManager.DownloadAsync(
    sourceBlob, destPath, null, context, CancellationToken.None);
    task.Wait();

enter image description here