首页 > 解决方案 > Microsoft 文档在以编程方式生成 SAS 令牌时出现问题。错误:“签名字段格式不正确”

问题描述

我的任务是尝试通过使用 SAS 令牌从 Azure 检索文件,但文档似乎并没有引导我找到解决方案。当我尝试使用 Java 以编程方式生成令牌时,我收到错误“签名字段格式不正确”。

以下是我引用的两份文档:

  1. https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas

  2. https://docs.microsoft.com/en-us/rest/api/eventhub/generate-sas-token

这是我正在使用的代码片段:图片

我正在使用正确的密钥、keyName 和 URI。我已经使用了搜索功能,但还没有找到解决方案。我错过了什么?

标签: javaazuresas-token

解决方案


问题与您的“stringToSign”变量有关。

以下应该有效:

String stringToSign = accountName + "\n" +
            "r\n" +
            "f\n" +
            "o\n" +
            start + "\n" +
            expiry + "\n" +
            "\n" +
            "https\n" +
            azureApiVersion+"\n";

PS:输入此令牌所需的开始/到期日期并使用最新的 api 版本。


推荐阅读