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

Posted

技术标签:

【中文标题】Microsoft 文档在以编程方式生成 SAS 令牌时出现问题。错误:“签名字段格式不正确”【英文标题】:Issue with Microsoft documentation in generating SAS token programatically. Error: "Signature Fields Not Well Formed" 【发布时间】:2021-12-24 07:44:12 【问题描述】:

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

这是我引用的两份文档:

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

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

这是我正在使用的代码 sn-p:image

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

【问题讨论】:

您尝试使用 SAS 令牌读取哪个服务? 我们正在尝试读取 ADLS 【参考方案1】:

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

以下应该有效:

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

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

【讨论】:

以上是关于Microsoft 文档在以编程方式生成 SAS 令牌时出现问题。错误:“签名字段格式不正确”的主要内容,如果未能解决你的问题,请参考以下文章

使用 Azure.Storage.Blobs 通过 .NET Core 3.1 生成 SAS 到期令牌

适用于 PHP 的 Microsoft Azure 和 SAS

ObjC,在以编程方式添加/删除后恢复为界面构建器自动布局约束?

无法使用 Microsoft 示例在 Azure APIM 中生成 SAS

SAS编程:如何批量读入某路径下外部文档数据?

iOS:以编程方式在以编程方式创建的滚动视图中创建标签