开发者社区> 问答> 正文

关于SignatureDoesNotMatch错误

我下载JAVA SDK 修改了com.test.OssSample 类中的



static final String accessKeyId
static final String secretAccessKey


的值.发短信后从网站获取到的值,但在直接run这个例子时还是提示SignatureDoesNotMatch 这个错误.请问是什么原因啊.


附上返回的listBucketResponse 中的错误信息.



<?xml version="1.0" ?>
<Error>
    <Code>
        SignatureDoesNotMatch
    </Code>
    <Message>
        The request signature we calculated does not match the signature you provided. Check your key and signing method.
    </Message>
    <StringToSignBytes>
        47 45 54 0A 0A 0A 4D 6F 6E 2C 20 31 32 20 4D 61 72 20 32 30 31 32 20 31 33 3A 30 36 3A 31 35 20 47 4D 54 0A 2F 37 6C 33 31 61 69 36 76 6B 70 70 32 77 33 33 67 6E 72 7A 6E 78 73 73 76 2D 74 65 73 74 2D 62 75 63 6B 65 74 2F
    </StringToSignBytes>
    <SignatureProvided>
        lZvgg7LHSV57GLxAu2q/IKhpFuQ=
    </SignatureProvided>
    <StringToSign>
        GET




Mon, 12 Mar 2012 13:06:15 GMT
/7l31ai6vkpp2w33gnrznxssv-test-bucket/
    </StringToSign>
    <OSSAccessKeyId>
        7l31ai6vkpp2w33gnrznxssv
    </OSSAccessKeyId>
    <RequestId>
        7b9bfdc6-14ee-7adf-215d-ca9120f53e43
    </RequestId>
    <HostId>
        storage.aliyun.com
    </HostId>
</Error>

展开
收起
xavier915 2012-03-12 21:25:25 25889 0
3 条回答
写回答
取消 提交回答
  • 问题原因

    使用OSS的API接口或SDK时,客户端需要携带签名信息与OSS服务端进行校验,若客户端计算的签名与OSS服务端计算的签名不一致,请求不会通过验证。

    本回答引用自以下KB文档:使用OSS的API接口或SDK时提示“SignatureDoesNotMatch”签名相关的报错

    更多帮助请访问以下站点:

    2021-08-31 18:08:53
    赞同 展开评论 打赏
  • 你好,从示例代码的类名com.test.OssSample 来看,这不像是最新版的SDK。
    你可以从oss.aliyun.com上更新一下SDK。

    里面有新的示例代码,你运行下看看。
    2012-03-13 10:05:15
    赞同 展开评论 打赏
  • 在返回的消息中,OSS服务器已经告诉你OSS用于签名的字符串是:
    GET




    Mon, 12 Mar 2012 13:06:15 GMT
    /7l31ai6vkpp2w33gnrznxssv-test-bucket/

    你可以把你用于签名的字符串打印出来对比一下,看起来像多了几个空格

    -------------------------

    Java SDK的问题,我等下找个Java的同学帮你分析一下

    2012-03-13 09:23:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载