我正在尝试使用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;
}
答案 0 :(得分:0)
正如您所说,目前在HDInsight中不支持Append Blobs。 您可以使用TransferManager.CopyAsync从API获取结果,该结果是存储帐户的追加blob。
经过测试,复制blob时,必须确保其类型相同。如果没有,您将收到以下错误消息。
根据您的要求,我建议您首先下载追加blob 。然后当您将blob 上传到您的存储帐户时,您可以选择blob的块类型。
此外,您可以使用Azcopy来实现它。