如何在REST调用中使用Azure存储SASToken

时间:2016-08-24 17:35:57

标签: java rest azure

Azure API调用返回可用于查询存储表的SAS令牌(示例,其值已在下面更改)。

使用Azure Storage SDK for Java,我可以将整个令牌传递到凭证对象的构造函数中,如下所示:

new StorageCredentialsSharedAccessSignature(tokenString)

然后,该凭证对象以某种方式用于对" CloudTableClient"进行身份验证。对象:

CloudTableClient tableClient = new CloudTableClient(
    new URI(tableEndpoint),
    new StorageCredentialsSharedAccessSignature(tokenString))

但是,我希望有人可以帮助我使用令牌构建一个更简单的REST调用。我无法对CloudTableClient进行逆向工程,以弄清楚如何处理tokenString。我已经尝试将其放入网址和授权标题中,但它主要是反复试验。任何帮助将不胜感激。

示例令牌格式:

"sasToken" : "?sv=2015-04-05&tn=WADMetricsPT1HP10DV2S20160704&spk=%3A002Fsubscriptions%3A123456789012%3A12345678%3A12345678%3A1234567890123456%3A002FresourceGroups%3A002FRGName001%3A002Fproviders%3A002FMicrosoft%3A002ECompute%3A002FvirtualMachines%3A002FAzureWinServer&epk=%3A002Fsubscriptions%3A123456789012%3A002D54c4%3A12345678%3A12345678%3A1234567890123456%3A002FresourceGroups%3A002FRGName001%3A002Fproviders%3A002FMicrosoft%3A002ECompute%3A002FvirtualMachines%3A002FAzureWinServer&sig=SOMEFAKESIGNATURE123456a%2SOMEFAKESIGNATURE12345%3D&se=2016-08-18T10%3A57%3A58Z&sp=r"

1 个答案:

答案 0 :(得分:0)

答案是简单地将其放在URL的末尾,并附加您之后的任何其他查询参数。例如,URL中需要api-version参数,因此此时您将添加:

& api-version = 2015-04-05。

此外,请勿使用请求的授权标头。