使用Start-AzureStorageBlobCopy将Blob从Azure复制到本地存储

时间:2017-09-10 14:34:34

标签: powershell azure azure-storage-blobs azure-powershell azure-storage-emulator

我想使用powershell将Blob 从“Azure存储”复制到我的“本地存储”(模拟器)。

我正在使用“Start-AzureStorageBlobCopy

它在“Azure”到“Azure”存储之间运行良好。 但是对于“Azure”到“Local”(模拟器)存储,会复制blob但是使用0字节。创建Blob是因为我可以在Storage Explorer中看到它们。

在Azure存储资源管理器中,我有以下属性:

  • CopyProgress:0/34550784
  • CopyStatus:失败

复制过程中我在Powershell中没有错误。但是 0字节被转移

VERBOSE: Performing the operation "Copy" on target "https://xxxxx.blob.core.windows.net/aaaa.db".
VERBOSE: Copy request to blob 'aaaaaa.db' in container 'yyyyy' has been scheduled with copyId 865e4d31-6729-44d1-997d-fdb76409d6cb.
ICloudBlob        : Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
BlobType          : BlockBlob
Length            : 0
ContentType       : 
LastModified      : 9/10/2017 2:10:45 PM +00:00
SnapshotTime      : 
ContinuationToken : 
Context           : Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext
Name              : aaaaaa.db

VERBOSE: Transfer Summary
--------------------------------
Total:  1.
Successful: 1.
Failed: 0.

2 个答案:

答案 0 :(得分:0)

我认为不可能使用Start-AzureStorageBlobCopy Cmdlet将云存储帐户中的blob复制到本地模拟器帐户。

Azure copy blob是由Azure Storage Service执行的服务器端异步操作。要使copy blob正常工作,Azure Storage Service应该能够到达目标。由于目标帐户是无法从计算机外部访问的本地存储帐户,因此Azure Storage Service永远无法到达目标。

一种可能的解决方案是下载blob,然后使用相应的Cmdlet将其上传到本地存储帐户。

另一种选择是使用AzCopy的同步复制blob功能。 AzCopy中的同步复制Blob实现实际上从源中下载blob内容,然后将其上载到目标中。

答案 1 :(得分:0)

Get-AzureStorageBlobContent可能适合您。我在这里发了一篇关于AzureStorageFileContent下载的文章: Azure File Storage Download