【问题标题】:Value of "se" is invalid in SAS token“se”的值在 SAS 令牌中无效
【发布时间】:2016-07-29 12:09:50
【问题描述】:

我创建了一个 SAS 令牌,如果我使用 URL 访问私有容器,它似乎可以工作: https://mystorage.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-12-11&sr=c&sig=11111111111123%3D&se=2016-07-29T11%3A32%3A28Z&sp=cwl

代码:

 SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.Create | 
                            SharedAccessBlobPermissions.Write | 
                            SharedAccessBlobPermissions.List |
                            SharedAccessBlobPermissions.Read,
            SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(15)
        };

        var blobStorage = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer container = blobStorage.GetContainerReference(blobContainerName);

        string sasContainerToken = container.GetSharedAccessSignature(policy);

但是当我在 AzCopy(来自批处理文件)中使用这个 sasContainerToken 时,我收到以下错误:

[2016-07-29 14:00:38][ERROR] The syntax of the command is incorrect.
Invalid SAS  token in parameter "DestSAS". Value of "se" is invalid in SAS token.

问题似乎与时间有关,用“%3A”转义,将其更改为“:”可解决错误,但现在由于 SAS 不正确,我没有被授权。

有什么想法吗?

更新: 从 Azure 门户生成帐户 SAS 似乎可以解决 AzCopy 错误,但仍然会拒绝单个 blob 上传的访问

AzCopy 
  /Source:C:\temp\myfiles 
  /Dest:"https://mystorage.blob.core.windows.net/mycontainer" 
  /DestSas:"?sv=2015-04-05&ss=bfqt&srt=sco&sp=rwdlacup&se=2016-07-30T21:11:31Z&st=2016-07-28T13:11:31Z&spr=https&sig=p%2FlCgbgMRU7lH7111111YyxEDE21rZWFo4%3D"

将 /DestSas 更改为 /DestKey(使用有效密钥)有效,但权限过多

【问题讨论】:

  • 您可以尝试创建一个新的 SAS,然后将“%3A”替换为“:”吗?
  • 我做到了,它解决了 AzCopy 错误,但随后 AzCopy 使用了这个“损坏”的 SAS,它是未经授权的。 AzCopy 似乎在进行一些奇怪的解析,我的笔记本电脑是荷兰语语言环境,但日期是 ISO,所以这不是问题

标签: azure azure-storage azcopy


【解决方案1】:

您是否在 *.bat 之类的脚本中运行 AzCopy?

如果是这样,“se=2016-07-29T11%3A32%3A28Z”需要将“%”加倍为“se=2016-07-29T11%%3A32%%3A28Z”。这是因为“%3”在*.bat 中有特定的含义。 (您需要将 SAS 中的所有“%”翻倍)

请注意,所有“%3A”都不应转换回“:”,否则 SAS 将被拒绝访问。

顺便说一句,您使用哪个 AzCopy 版本? SAS 问题也可能是由于 AzCopy 和用于生成 SAS 的客户端库之间的客户端库版本不匹配造成的。

【讨论】:

  • 谢谢,转义 "%" 成功了,我已经尝试过相同的客户端库 (6.0)
猜你喜欢
  • 2021-07-26
  • 1970-01-01
  • 2012-04-09
  • 2017-03-09
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 2015-08-04
  • 1970-01-01
相关资源
最近更新 更多