OSS报SignatureDoesNotMatch错误,特别注意公有云和私有云环境不同!

OSS报SignatureDoesNotMatch错误,特别注意公有云和私有云环境不同!

一、基础配置检查


1、确保你当前操作的电脑可以ping通endPoint
公有云是互联网都能访问,但是私有云是内网才可以访问的,所以,确保你的网络能通;
如果网络不通时,抛出的异常是 Unknown Host,也是比较容易排查

2、确保你的AK(AccessKeyId)是正确且启用的
因为AK是可以被禁用,被删除的
如果是失效或者禁用删除了,提示信息是 invalid key

3、确保你的AS(AccessKeySecret)是正确的
如果失败,一般是 SignatureDoesNotMatch

4、检查配置文件前后是否带了空格

5、检查 endpoint前面是否带上了 bucket (正确的是不带bucket,错误示例: b u c k e t . {bucket}. bucket.{endpoint} )


二、如果以上基础信息都配置正确,可以去OSS官网下载ossUtils工具验证一下

1、官网工具下载:https://help.aliyun.com/document_detail/120075.html?spm=a2c4g.11186623.6.696.124933aanP6Ubd

2、参考官网资料,下载并配置Endpoint AK AS 信息,最后一个StsToken可以不用设置

3、下载之后,启动,并输入一些基础命令检查
ls 命令查看所有的bucket信息
ls oss://bucketName 命令查看指定的bucketName的信息

4、如果正常输出结果,则表明基础配置信息都是正确的;反之,重新检查,排除法,一步步来


三、经过验证之后,基础信息是正常的,但是还是抛出签名认证失败问题:SignatureDoesNotMatch

1、OSS SDK版本试着更新一下

com.aliyun.oss aliyun-sdk-oss 3.5.0

2、如果是私有云的环境 <--------!!! 重!点 !!!----------->

私有云一定要关闭 CNAME,才能正常认证通过!!!

(我就是卡在这里,磨了大半天,被人提及才知道,奇怪的是网上对于这一点的知识几乎没有,所以格外注意了)

        ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
        // 私有云要关闭CNAME
        conf.setSupportCname(false);
        OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret, conf);

四、终极办法:只能求助OSS售后工程师了

1、在OSS官网,提交工单,把问题描述详细,提交等待

2、一般在一个小时内可以收到回复,建议可以debug时,同步进行

3、可以加急处理

4、工单结束后,删除工单,可以把相关的私密信息都删除,不用担心泄密

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值