使用SAS令牌(具有IP限制)的Azure复制blob 403禁止使用

时间:2016-10-05 13:01:14

标签: azure azure-storage-blobs azure-blob-storage

我正在尝试将blob从一个uri复制到另一个uri(都在同一个存储帐户中),两者都有一个用于凭据的SAS令牌。这适用于没有IP限制的SAS令牌,但在源blob SAS令牌受IP限制时失败。

注意:它没有失败,因为我的IP错误,其他blob函数工作,即列表,删除,上传等。

示例代码:

SELECT CASE 
        WHEN DATALENGTH(IDNumber) > 7 THEN SUBSTRING(IDNumber, 0, 6)
        WHEN DATALENGTH(IDNumber) < 7 THEN CONCAT(REPLICATE(0, LEN(IDNumber)), IDNumber)
    END AS NID;

有一种猜测是复制请求来自Azure内部,因此IP地址被阻止了?我应该将源SAS令牌配置为接受Azure中的IP范围吗? 是否有另一种方法可以复制允许使用SAS令牌的blob?

1 个答案:

答案 0 :(得分:2)

  

有一种猜测是复制请求来自Azure内部   IP地址被阻止了?我应该将源SAS令牌配置为   接受Azure中的IP范围?

你是绝对正确的。复制操作是服务器端操作,SAS令牌中指定的IP地址是客户端IP地址。由于SAS中包含的IP地址不是Azure IP地址,因此复制操作失败。您可以配置SAS令牌以接受Azure中的IP范围,但我猜测是否正在使用复制某些内部IP地址,因此我不确定这是否可行。

  

是否有另一种方法可以复制允许使用SAS令牌的blob?

我建议不要在SAS中使用IP ACL进行复制操作,即不要在SAS中指定用于复制操作的IP地址限制。