开发者社区 问答 正文

oss js https 上传文件失败

引入了直传sdk 可是在测试环境http的情况下,可以上传图片到oss 。生产环境的https上传sdk报错,求大神指教



            var client = new OSS.Wrapper({
                accessKeyId: accessid,
                accessKeySecret: accesskey,
                stsToken: securityToken,
                region: host,
                endpoint:'oss-cn-shenzhen',
                secure: true,
                bucket: 'airparking-space'
            });


            client.multipartUpload(fileName).then(function (result) {
               console.log(result);
            }).catch(function (err) {
                console.log(err);
            });

展开
收起
叫我第二名 2018-02-04 18:07:08 4024 分享 版权
阿里云 AI 助理回答

遇到在生产环境的HTTPS上传时SDK报错,可能是由几个常见原因导致的。下面是一些建议和排查步骤:

  1. SSL证书问题:确认您的OSS服务端是否配置了正确的SSL证书,并且该证书是被信任的。客户端可能因为无法验证服务器的SSL证书而拒绝连接。如果是自定义域名,请确保已正确配置了SSL证书,并通过了所有必要的验证。

  2. CORS设置:在OSS Bucket的CORS设置中,需要允许来自您生产环境域名的跨域请求。请检查Bucket的CORS规则是否包含了生产环境的源(Origin),并且允许了所需的HTTP方法(如PUTPOST等)。

  3. 网络环境限制:部分企业或云服务商的网络策略可能会限制对外部HTTPS服务的访问。确认生产环境的网络配置没有阻止对OSS的HTTPS连接。

  4. SDK版本兼容性:确保使用的OSS SDK版本与阿里云OSS服务兼容,有时旧版本的SDK可能不支持某些新特性或者存在已知的问题。可以考虑升级到最新版本的SDK。

  5. 详细错误信息:查看catch中的错误信息具体是什么,这将直接指向问题所在。通常错误信息会包含HTTP状态码和错误描述,这对于定位问题至关重要。

  6. STS Token权限:如果使用了STS Token进行临时授权,确保Token具有足够的权限执行multipartUpload操作,并且Token在有效期内。

  7. Endpoint配置:虽然示例代码中已经指定了endpoint为oss-cn-shenzhen,但请注意在不同环境下(尤其是从测试转到生产时),endpoint应该根据实际的Bucket区域进行调整。不过,从您的代码片段看这部分应该是正确的。

针对以上建议,您可以逐一排查并尝试解决。如果问题依然存在,建议收集详细的错误日志并通过阿里云官方渠道寻求技术支持。

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