使用DataMovement库将文件从Azure Blob复制到ADLS文件系统

时间:2019-06-04 00:02:37

标签: c# azure azure-storage-blobs

我正在尝试使用数据移动库将文件从Azure Blob复制到Azure文件系统(第二代),但出现错误。

C#代码

var sourceUri = "https://[storage account name].blob.core.windows.net/container/sourcefolder/sourcefile.pdf"

     var sourceBlobFile = await CloudBlobContainer.ServiceClient.GetBlobReferenceFromServerAsync(sourceUri);

    var destFileSystemFile = new CloudFile(destinationUri, CloudBlobContainer.ServiceClient.Credentials);

    TransferManager.CopyAsync(sourceBlobFile, destFileSystemFile , true);

错误

  

消息:Microsoft.Azure.Storage.DataMovement.TransferException:   转移失败。

     

Microsoft.Azure.Storage.StorageException:未指定对此请求必需的HTTP标头。

错误堆栈跟踪

  在

  Microsoft.Azure.Storage.DataMovement.TransferScheduler.ExecuteJobInternalAsync(TransferJob   作业,CancellationToken cancelToken)   C:\ Local \ Jenkins \ jobs \ DMLib_0.11.0 \ workspace \ lib \ TransferScheduler.cs:line   238点   Microsoft.Azure.Storage.DataMovement.SingleObjectTransfer.ExecuteAsync(TransferScheduler   调度程序,CancellationToken cancelToken)   C:\ Local \ Jenkins \ jobs \ DMLib_0.11.0 \ workspace \ lib \ TransferJobs \ SingleObjectTransfer.cs:line   198点   Microsoft.Azure.Storage.DataMovement.TransferManager.DoTransfer(传输   transfer,TransferContext transferContext,CancellationToken   cancelToken)在   C:\ Local \ Jenkins \ jobs \ DMLib_0.11.0 \ workspace \ lib \ TransferManager.cs:line   1322在FileCopy.cs:第39行   ---从先前抛出异常的位置开始的堆栈跟踪---在FileCopyTests.cs:line 60   ---从之前引发异常的位置开始的堆栈结束跟踪---   -----内部堆栈跟踪-----在Microsoft.Azure.Storage.Core.Executor.Executor.ExecuteAsync [T](RESTCommand`1   cmd,IRetryPolicy策略,OperationContext operationContext,   CancellationToken令牌)位于   Microsoft.Azure.Storage.DataMovement.TransferControllers.AsyncCopyController.StartCopyAsync()   在   C:\ Local \ Jenkins \ jobs \ DMLib_0.11.0 \ workspace \ lib \ TransferControllers \ AsyncCopyControllers \ AsyncCopyController.cs:line   在473   Microsoft.Azure.Storage.DataMovement.TransferControllers.AsyncCopyController.DoWorkInternalAsync()   在   C:\ Local \ Jenkins \ jobs \ DMLib_0.11.0 \ workspace \ lib \ TransferControllers \ AsyncCopyControllers \ AsyncCopyController.cs:line   203点   Microsoft.Azure.Storage.DataMovement.TransferControllers.TransferControllerBase.DoWorkAsync()   在   C:\ Local \ Jenkins \ jobs \ DMLib_0.11.0 \ workspace \ lib \ TransferControllers \ TransferControllerBase.cs:line   175点   Microsoft.Azure.Storage.DataMovement.TransferScheduler.ExecuteJobInternalAsync(TransferJob   作业,CancellationToken cancelToken)   C:\ Local \ Jenkins \ jobs \ DMLib_0.11.0 \ workspace \ lib \ TransferScheduler.cs:line   225结果消息:
  Microsoft.Azure.Storage.DataMovement.TransferException:传输   失败了   ---- Microsoft.Azure.Storage.StorageException:未指定此请求必需的HTTP标头。

1 个答案:

答案 0 :(得分:0)

我发现当前版本的数据移动库不支持ADLS Gen2。这就是抛出错误的原因。

我没有任何官方链接