0

有没有人按照下面的示例成功为 Azure APIM 中的 Blob 存储生成 SAS?

https://docs.microsoft.com/en-us/azure/api-management/policies/generate-shared-access-signature

已替换门户中的存储访问密钥(使用密钥 1 和密钥 2),但得到相同的结果。也尝试生成新密钥,但它也不起作用。

"表达式评估失败。字典中不存在给定键。\r\n 在 System.Collections.Generic.Dictionary`2.get_Item(TKey key)", "字典中不存在给定键。"

像我这样的 azure-apim starter 更令人困惑的是 <set-variable name="resourcePath" value="TableName()" />,TableName() 是做什么的?

4

2 回答 2

2

感谢所有试图提供帮助的人:Anton 和 Doris。

失败的操作是这个块:

<set-variable name="StringToSign" value="@{
            return string.Format(
            "GET\n\n\n\n\n{0}\n\n\n\n\n\n\n{1}\n{2}\n{3}",
            (string)context.Variables["Content-Type"],
            (string)context.Variables["x-ms-date"],
            (string)context.Variables["x-ms-version"],
            (string)context.Variables["CanonicalizedResource"]);
        }" />

但是,在示例开始时,当设置上下文变量时,缺少 x-ms-version。我添加了操作<set-variable name="x-ms-version" value="2020-02-10" />,现在正在生成 SAS。

也许它会帮助其他想要使用 azure 的人:)

于 2020-12-07T15:25:51.867 回答
0

此示例为 Azure 存储帐户中的表生成 SAS 令牌。您可以将其修改为您要访问的资源,如下所示:

<set-variable name="resourcePath" value="containername/blobname" />

不要忘记也改变rewrite-uri块。

于 2020-12-07T10:14:43.453 回答