文档

访问OSS出现网络异常如何处理?

更新时间:

发生网络异常有可能是您使用的OSS域名不合适,但多数网络异常都是客户端网络不稳定导致的,本文将针对不同情况给出网络异常的解决办法。

背景信息

如果您请求OSS时收到了OSS的响应,即使这个响应的HttpCode不是200,也说明您当前的网络跟OSS服务之间是连通的。这类问题您只需获取OSS响应中的Request ID,打开OSS自助诊断工具进行问题诊断检测即可。关于如何获取Request ID,请参见获取Request ID

本文所示的网络异常是指您的请求没有到达OSS的服务器之前就发生了中断,您可以通过获取Request ID来判断您的请求有没有到达OSS,请求没有到达OSS时Request ID为空。

Connection refused

问题原因

  • 您的客户端和OSS不在同一地域的阿里云内网中。只有在与OSS同地域的阿里云产品中才可以通过内网Endpoint访问OSS,比如您有一个cn-hangzhou的OSS Bucket,则可以在一台cn-hangzhou的ECS上通过oss-cn-hangzhou-internal.aliyuncs.com域名访问OSS。关于域名的更多信息,请参见访问域名和数据中心

  • 客户端跟OSS虽然在同一个地域,但是客户端可能有一些特殊限制,比如端口未开放等。

解决方案

  • 检查您的域名中是否带internal,改用不带internal的公网Endpoint发起请求。如果公网Endpoint可以正常请求,说明您当前的客户端不适合使用内网Endpoint。

  • 建议在出现问题的客户端通过ping命令访问OSS的公网Endpoint地址,比如:ping oss-cn-hangzhou.aliyuncs.com,如果无法ping通请使用telnet命令测试80/443端口是否正常。

ConnectionTimeOut

问题原因

  • 您所在的网络环境可能处在运营商网络边缘节点,向运营商网络请求成功率比较低。

  • 上传大文件超时。

  • 配置的超时时间过短。

解决方案

  • 开通CDN加速,利用CDN边缘加速节点,减少手机或PC网络对运营商网络的依赖。

  • 采用分片断点上传,每个分片的大小不超过1 MB。更多信息,请参见分片上传Java断点续传上传Python断点续传上传

  • 增大超时时间,并开启失败重传机制。更多SDK示例代码,请参见简介

关于网络超时处理的更多信息,请参见网络超时处理

Socket timeout or Socket closed

问题原因

连接OSS超时。

解决方案

增大超时时间。例如,Java SDK可以通过ClientConfiguration.setSocketTimeout设置Socket层传输数据的超时时间。更多SDK示例代码,请参见简介

Connection reset

问题原因

  • 客户端网络异常。

  • 代码中配置的Endpoint不准确。

  • 因攻击或者发布违法内容的原因导致Bucket被切入沙箱。

  • OSS域名被运营商劫持。

解决方案

  • 排查客户端网络是否正常

    在出现报错的设备上通过ping命令访问所在地域的OSS访问域名,或者打开阿里昆仑诊断工具查看您的网络是否有异常。当网络异常时请排查解决。

  • 排查代码配置

    在客户端网络正常的前提下,通过ping命令访问代码中使用的OSS域名,确保域名拼写正常。关于域名的更多信息,请参见访问域名和数据中心

    说明

    代码中的Endpoint必须要带HTTP或HTTPS协议头,比如:https://oss-cn-hangzhou.aliyuncs.com。

    更多SDK示例代码,请参见简介

  • 确认Bucket是否进入沙箱

    进入沙箱的表现为部分请求可以正常响应,但服务质量将被降级。更多信息,请参见OSS沙箱

  • 抓包排查

    如果经过上述排查后仍未解决您的问题,请使用Wireshark工具抓包后联系OSS技术支持进行排查。

相关文档

连接重置常见原因及排查方法

  • 本页导读 (1)
文档反馈