【问题标题】:Is it possible to copy from a RA-GRS secondary using Start-AzureStorageBlobCopy?是否可以使用 Start-AzureStorageBlobCopy 从 RA-GRS 辅助复制?
【发布时间】:2016-07-23 04:38:57
【问题描述】:

是否可以使用 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 再次完成这项工作....

【问题讨论】:

  • Microsoft 回复了我的 MSDN 线程,表示目前无法使用 Powershell Azure cmdlet...希望有人能证明它们是错误的。与此同时,我将尝试使用 API 在 Container/Blob 上设置辅助 URI,我希望这是 PowerShell 不起作用的原因。

标签: azure azure-blob-storage


【解决方案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) 使用明确设置为辅助的自定义端点创建上下文。例如:

$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

【讨论】:

  • 谢谢 slepbox,一位同事还向我展示了如何使用 option2 来做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2021-04-13
  • 1970-01-01
  • 2016-12-30
相关资源
最近更新 更多