使用SAS密钥执行azCopy时,有人可以帮助解决错误吗?
我SSH到我的Azure VM上,并使用其托管身份获取令牌:
卷曲'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com'-H元数据:true
然后,我构建一个邮递员请求,其“授权”标头为“ Bearer tokenFromAbove”,并且其JSON主体为:
{
“ signedServices”:“ b”,
“ signedResourceTypes”:“ co”,
“ signedPermission”:“ rwc”,
“ signedProtocol”:“ https”,
“ signedExpiry”:“ 2020-02-22T00:06:00Z”
}
并返回一个sas令牌。该令牌使我可以使用“ azcopy make”创建一个容器。
但是我也想使用'azcopy copy'将文件从我的VM移动到新容器。我通过命令尝试这样做:
azcopy复制'mySourceDirectory''https://myStorageAccountName.blob.core.windows.net/myContainer?sv=2015-04-05&ss=b&srt=co&sp=rwc&se=2020-02-22T00:06:00Z&spr=https&sig=redacted'-递归
但是此操作失败,并显示以下内容:
INFO:身份验证失败,它不正确,已过期或没有正确的权限-> github.com/Azure/azure-storage-blob-go/azblob.newStorageError,/ home / vsts / go /pkg/mod/github.com/!azure/azure-storage-blob-go@v0.7.0/azblob/zc_storage_error.go:42
=====响应错误(ServiceCode = AuthenticationFailed)=====
说明=服务器无法验证请求。确保包括签名在内的Authorization标头的值正确形成。
RequestId:ef37087d-501e-0050-650b-e81cb4000000 时间:2020-02-20T16:35:50.6651356Z,详细信息:
AuthenticationErrorDetail:签名不匹配。用于签名的字符串是myStorageAccountName w b 合作 2020-02-22T00:06:00Z https 2015-04-05
代码:AuthenticationFailed
请注意,如果我在Azure门户中生成类似的SAS令牌,则它可以工作。我的VM是存储帐户的所有者。
答案 0 :(得分:0)
感谢上述答复。对于“ azcopy copy”命令,这确实是一个未解决的问题,当从其余API生成SAS令牌中返回的日期格式时,无法解释该日期格式。
我们将提出一种解决方法-我认为我们可以暂时使用从门户生成的令牌。