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

Copy Blob from Azure to Local Storage with Start-AzureStorageBlobCopy

我想使用 powershell 将 Blob 从 "Azure storage" 复制到我的 "Local storage"(模拟器)。

我正在使用“Start-AzureStorageBlobCopy

它在 "Azure" 到 "Azure" 存储之间运行良好。 但是对于 "Azure" 到 "Local"(模拟器)存储,复制的 blob 为 0 字节。创建 Blob 是因为我可以在存储资源管理器中看到它们。

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

我在复制过程中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.

我认为无法使用 Start-AzureStorageBlobCopy Cmdlet 将 blob 从您的云存储帐户复制到本地模拟器帐户。

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

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

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

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