开发者社区 问答 正文

请吧OSS bucket的外网链接

(微)电〗【186-6605-3854〗号Reoss SignatureDoesNotMatch 问题,百度了很多,没解决啊 OSS\Core\OssException SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method. RequestId: 5791E9534F29D0B715C06A43

请吧OSS bucket的外网链接:

endpoint = 'xxxxxx.oss-cn-beijing.aliyuncs.com'; 修改为 endpoint = 'oss-cn-beijing.aliyuncs.com';

不用谢我,我是雷锋http的时候可以上传,但是改到HTTPS就报错,ssl之类的,和只读什么的错误java.io.FileNotFoundException:/jacoco.exec(只读文件系统)在java.io.FileOutputStream.open0(本机方法)在java.io.FileOutputStream.open(FileOutputStream.java:308)处。(FileOutputStream.java:238)在org.jacoco.agent.rt.internal_8ff85ea.output.FileOutput.openFile(FileOutput.java:67)在org.jacoco.agent.rt.internal_8ff85ea.output.FileOutput.startup(FileOutput.java :49)在org.jacoco.agent.rt.internal_8ff85ea.Agent.getInstance(Agent.java:50)在org.jacoco.agent.rt.internal_8ff85ea.Agent.startup(Agent.java:122)在org.jacoco。 agent.rt.internal_8ff85ea.Offline。(offline.java:31),位于org.jacoco.agent.rt.internal_8ff85ea.Offline.getProbes(Offline.java:51),位于com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider。com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider上的$ jacocoInit(未知来源:13)。(未知来源:0)

javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。在com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:229)在okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:319)在okhttp3.internal.connection.RealConnection。EstablishmentProtocol(RealConnection.java) :283),位于okhttp3.internal.connection.RealConnection.connect(RealConnection.java:168),位于okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257),位于okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation。 okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)的okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java的java:135):

展开
收起
游客odnzwz7f4juco 2019-12-02 14:21:17 822 分享 版权
阿里云 AI 助理回答

遇到 SignatureDoesNotMatch 错误通常意味着您的签名计算与阿里云OSS服务端的计算不一致,这可能是由于以下几个原因造成的:

  1. AccessKey和SecretKey错误:请确保您使用的AccessKey ID和Secret Access Key是正确的,并且有权限访问指定的Bucket。如果不确定,请在阿里云控制台重新生成并替换。

  2. 签名方法问题:检查您的签名算法是否正确。阿里云OSS推荐使用HMAC-SHA1或HMAC-SHA256进行签名。确认代码中使用的哈希算法与阿里云OSS要求的一致。

  3. 时间同步问题:服务器的时间与阿里云服务器时间相差超过5分钟也可能导致此问题。请确保服务器的系统时间与标准时间保持同步。

  4. Endpoint格式:您已经提到了修改Endpoint的建议,确保在HTTPS请求时使用正确的格式,即去掉前面的地域前缀(例如从xxxxxx.oss-cn-beijing.aliyuncs.com改为oss-cn-beijing.aliyuncs.com),但请注意,这个改动仅在某些特定场景下适用,比如当您的配置或网络环境需要直接指向公共入口点时。

针对SSL握手异常和找不到证书路径的信任锚的问题,可以尝试以下解决办法:

  • 更新SDK版本:确保您使用的阿里云OSS SDK是最新的,因为旧版本可能不支持最新的TLS协议或者存在已知的安全问题。

  • 信任证书:如果您的应用运行在一个对SSL证书有严格限制的环境中,可能需要手动添加或更新信任证书库。对于Android应用,可以考虑在App中加入阿里云OSS的CA证书,或者允许系统信任所有证书(仅供测试环境使用,生产环境不推荐)。

  • SSL/TLS版本设置:检查您的客户端是否支持与服务器协商的SSL/TLS版本。如果可能,尝试在客户端代码中指定一个兼容的SSL/TLS版本,如TLSv1.2或更高版本。

  • 网络代理问题:如果您通过代理服务器访问OSS,确保代理服务器没有篡改SSL连接或影响证书验证。

如果以上建议仍不能解决问题,建议详细检查您的代码实现,特别是签名生成的部分,同时查看阿里云官方文档或联系阿里云技术支持获取更专业的帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答