上载Azure Enterprise API将blob附加为块blob到存储帐户

时间:2018-03-05 19:24:43

标签: c# azure blob

我正在尝试使用Azure Enterprise API使用HDInsight进行一些报告。但是,HDInsight似乎只支持块blob格式,而从Azure API接收的文件是附加blob。

从Azure数据移动库的示例代码中,我使用以下代码段来执行将结果从API提取到存储帐户的任务。但是,我需要它来阻止blob,到目前为止我无法找到解决方案。我尝试过使用UploadAsync方法,但在这种情况下没有任何内容上传。

                    //ConsoleKeyInfo keyinfo;
                    try
                    {

                        task = TransferManager.CopyAsync(uri, blob, true, null, context, cancellationSource.Token);
                        //while (!task.IsCompleted)
                        //{
                        //    if (Console.KeyAvailable)
                        //    {
                        //        keyinfo = Console.ReadKey(true);
                        //        if (keyinfo.Key == ConsoleKey.C)
                        //        {
                        //            cancellationSource.Cancel();
                        //        }
                        //    }
                        //}
                        await task;
                    }

1 个答案:

答案 0 :(得分:0)

正如您所说,目前在HDInsight中不支持Append Blobs。 您可以使用TransferManager.CopyAsync从API获取结果,该结果是存储帐户的追加blob。

经过测试,复制blob时,必须确保其类型相同。如果没有,您将收到以下错误消息。

enter image description here

根据您的要求,我建议您首先下载追加blob 。然后当您将blob 上传到您的存储帐户时,您可以选择blob的块类型

此外,您可以使用Azcopy来实现它。