无法通过SAS使用从一个Blob到另一个Blob的Azcopy

时间:2019-09-03 11:47:56

标签: azure-storage-blobs azcopy

我有2个Blob存储,一个在Eastus中,一个在canadaeast中,并且我想将一个.vhd从eastus复制到加拿大。 我走到东方,要复制的斑点上。我打开上下文菜单,单击生成SAS。我生成具有读/写/创建/删除权限的令牌,并复制提供的URL。

我遵循https://docs.microsoft.com/en-gb/azure/storage/common/storage-use-azcopy-blobs

上的文档

我下载了azcopy,然后键入:

 azcopy copy "source?SASToken" "destination"

我明白了:

===== RESPONSE ERROR (ServiceCode=ResourceNotFound) =====
Description=The specified resource does not exist.
RequestId:60890ddf-601e-0040-5a4b-62d6ba000000
Time:2019-09-03T11:34:08.5367479Z, Details:
   Code: ResourceNotFound

我生成一个对目标帐户具有读/写/创建/删除权限的SAS令牌,然后键入:

azcopy copy "source?SASToken" "destination?SASToken"

我得到以下结果:

Job a30eaae3-1dfd-f94d-5237-002ababea22c summary
Elapsed Time (Minutes): 0.0334
Total Number Of Transfers: 1
Number of Transfers Completed: 0
Number of Transfers Failed: 1
Number of Transfers Skipped: 0
TotalBytesTransferred: 0
Final Job Status: Failed

在生成的日志文件中,我得到

   RESPONSE Status: 400 The value for one of the HTTP headers is not in the correct format.

Content-Length: [325]
Content-Type: [application/xml]
Date: [Tue, 03 Sep 2019 10:07:21 GMT]
Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
X-Ms-Error-Code: [InvalidHeaderValue]
X-Ms-Request-Id: [1ef8bbe7-a01e-0019-313f-62d33c000000]
X-Ms-Version: [2018-11-09]

我被困住了:我不知道如何将一个Blob复制到另一个位置上的Blob,而我尝试的所有操作都失败了。

我做错了什么?你能帮忙吗?

2 个答案:

答案 0 :(得分:2)

在存储帐户之间复制Blob时,应注意当前azcopy版本中的以下限制。

  
      
  • 仅支持不具有分层名称空间的帐户。
  •   
  • 您必须将SAS令牌附加到每个源URL。如果使用Azure Active Directory(AD)提供授权凭据,则您   只能从目标URL省略SAS令牌。
  •   
  • 高级块Blob存储帐户不支持访问层。通过设置以下操作,从复制操作中忽略Blob的访问层:   s2s-preserve-access-tier为false(例如:   --s2s-preserve-access-tier=false
  •   

您可以验证两个存储帐户是否满足上述要求,尤其是第三个。将blob从storageV2复制到storageV1,然后附加--s2s-preserve-access-tier=false时,可以重现您的问题。 enter image description here

答案 1 :(得分:0)

根据我的测试,我们可以使用命令“ azcopy copy "source?SASToken" "destination?SASToken"”将一个Blob复制到另一个Blob。详细步骤如下。 1.生成访问令牌 enter image description here

  1. 复制Blob enter image description here