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

问题描述 投票:0回答:1

我正在尝试使用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;
                    }
c# azure blob
1个回答
0
投票

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

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

enter image description here

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

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

© www.soinside.com 2019 - 2024. All rights reserved.