gpt4 book ai didi

Azure表rest api授权

转载 作者:行者123 更新时间:2023-12-03 01:51:51 24 4
gpt4 key购买 nike

我正在尝试使用 powershell 中的 azure rest api,但仍停留在授权部分。用于使用本文生成签名https://msdn.microsoft.com/en-us/library/azure/dd179428.aspx

脚本:

$StorageAccount = "account"
$Key = "key"

$sharedKey = [System.Convert]::FromBase64String($Key)
$date = [System.DateTime]::UtcNow.ToString("R")

$resource = "/test()?`$top" # also tried /test() /test /test()?`$top=1
$stringToSign = "$date`n/$StorageAccount$resource"
$hasher = New-Object System.Security.Cryptography.HMACSHA256
$hasher.Key = $sharedKey

$signedSignature = [System.Convert]::ToBase64String($hasher.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($stringToSign)))

$authHeader = "SharedKeyLite ${StorageAccount}:$signedSignature"

$headers = @{"x-ms-date"=$date
"Authorization"=$authHeader
"Accept"="application/atom+xml"}

try {
$tables = Invoke-RestMethod -Uri "https://$StorageAccount.table.core.windows.net/test()?`$top=1" -Headers $headers |% {
$_.content.properties.tablename
}
} catch [Exception] {
$_
}

我能够列出表格 (/tables),但是当我尝试执行一些 odata 请求时(/test()?$top=1 此处),我获取授权错误。

最佳答案

我复制你的代码并在最后尝试一下。效果很好。

这里有一些我想指出的事情。

  1. 对于“查询实体”,您应该使用 $resource = "/test()" ,和$resource = "/test"用于“插入实体”。 $resource = "/test()?$top"$resource = "/test()?$top=1"不正确。

  2. 确保您的 $Key是正确的。由于您已使用此键来创建表,因此我认为情况并非如此。

  3. 确保表格中至少有一行。

关于Azure表rest api授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35370693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com