是否可以使用Start-AzureStorageBlobCopy从RA-GRS辅助服务器进行复制?

是否可以使用Start-AzureStorageBlobCopy从RA-GRS辅助服务器进行复制?,azure,azure-storage-blobs,Azure,Azure Storage Blobs,是否可以使用Start-AzureStorageBlobCopy从RA-GRS辅助服务器进行复制 它使用AZCopy工作,但当我尝试使用Azure cmdlet时,我收到以下警告,但没有复制任何内容: 警告:忽略不匹配的源存储上下文。。源uri为,终点为 有趣的是,当使用Show对象浏览对象时,没有为容器或blob列出第二个URI。尽管存储帐户显示读访问辅助设备列为可用 我在一个在线脚本中看到了对这一点的引用,但是当我运行脚本时,我得到了与上面相同的错误。API改变了吗?我试过使用手臂和ASM

是否可以使用Start-AzureStorageBlobCopy从RA-GRS辅助服务器进行复制

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

警告:忽略不匹配的源存储上下文。。源uri为,终点为

有趣的是,当使用Show对象浏览对象时,没有为容器或blob列出第二个URI。尽管存储帐户显示读访问辅助设备列为可用

我在一个在线脚本中看到了对这一点的引用,但是当我运行脚本时,我得到了与上面相同的错误。API改变了吗?我试过使用手臂和ASM


同样,使用AZCopy可以正常工作。…

当前,如果使用基本上下文进行身份验证,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
$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
2) 创建一个上下文,其中自定义端点显式设置为secondary。例如:

$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
$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

微软回应我的MSDN线程说,目前不可能使用Powershell Azure cmdlet…希望有人能证明他们是错的。同时,我将尝试使用API在容器/Blob上设置第二个URI,我希望这就是PowerShell无法工作的原因。谢谢你,slepbox,一位同事还向我展示了如何使用option2实现这一点。