是否可以使用Start-AzureStorageBlobCopy从RA-GRS辅助副本进行复制?

时间:2015-06-10 10:18:48

标签: azure azure-storage-blobs

是否可以使用Start-AzureStorageBlobCopy从RA-GRS辅助副本进行复制?

它使用AZCopy,但是当我尝试使用Azure cmdlet时,我收到以下警告,并且没有复制任何内容:

警告:忽略不匹配的源存储上下文。源uri为https://portalvhdsblahblah-secondary.blob.core.windows.net/vhds/VM3.vhd,结束点为https://portalvhdsblahblah.blob.core.windows.net/

有趣的是,当使用Show-Object探索对象时,没有列出容器或blob的辅助URI。虽然存储帐户显示“读取访问”辅助节点已列为可用。

我已经在网上看到了对此的引用,但是当我运行脚本时,我得到了与上面相同的错误。 API有变化吗?我尝试过使用ARM和ASM。

再次使用AZCopy就可以了。

1 个答案:

答案 0 :(得分:1)

目前PowerShell Cmdlet Start-AzureStorageBlobCopy如果您使用基本上下文进行身份验证,则不方便选择辅助或主要。

有两种解决方法。

1)使用包含身份验证信息的源Uri:您可以手动组成辅助的SAS URL,因为辅助和主要共享相同的SAS。例如:

$src = 'http://account1-secondary.blob.core.windows.net/con1/blob1'+(New-AzureStorageBlobSASToken -Container con1 -Blob blob1 -Permission r -Context $srcContext)

Start-AzureStorageBlobCopy -SrcUri $src -DestContainer con2 -DestBlob blob1 -DestContext $DestContext

2)使用显式设置为secondary的自定义端点创建一个Context。例如:

$srcctx = New-AzureStorageContext -ConnectionString "DefaultEndpointsProtocol=https;AccountName=***;AccountKey=***;BlobEndpoint=http://***-secondary.blob.core.windows.net;FileEndpoint=http://***-secondary.file.core.windows.net;QueueEndpoint=http://***-secondary.queue.core.windows.net; TableEndpoint=http://***-secondary.table.core.windows.net;

Start-AzureStorageBlobCopy –Container *** -Blob *** -Context $srcctx –DestContainer *** -DestBlob *** -DestContext $destctx