是否可以使用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就可以了。
答案 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