oos文件上传在暂停时报错ResponseError: socket hang up[阿里云oss]

对象存储OSS中使用node.js SDK调用断点续传时

const OSS = require(‘ali-oss’);

const client = new OSS({})

client.cancel()

nodejs会报错ResponseError: socket hang up

求大神告知一下原因和解决办法!!!!!!!!!!!!!!!!!!!!!!!!

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. socket hang up 错误通常是由于请求连接被意外关闭或连接超时导致的。在使用阿里云 OSS Node.js SDK 进行断点续传时,可能会出现这种错误,主要是由于连接请求被中断或超时导致的。

    建议您可以检查以下几点:

    确认您已正确配置了 OSS 的 AccessKeyId、AccessKeySecret、Endpoint 等参数。

    检查网络连接是否正常,尝试重新执行代码或更换网络环境,以便确定是否是网络问题导致的。

    检查网络连接超时设置是否合理,您可以尝试增加连接超时时间,例如:

    const client = new OSS({ timeout: 120000, // 设置超时时间为 120 秒 // 其他参数 }); 检查断点续传的设置是否正确,例如是否使用了正确的 UploadId、PartNumber、ETag 等参数。 另外,如果您执行了 client.cancel() 方法,那么当前上传任务将被取消,并且当前的请求连接会被关闭。因此,在执行 client.cancel() 方法之后,如果继续使用当前的连接,可能会导致 socket hang up 错误。建议您可以在取消上传任务后重新创建一个新的连接,以便继续执行其他上传操作。

    如果您仍然无法解决问题,建议您可以在阿里云控制台上查看相关服务的错误日志和监控信息,以便更好地了解问题的原因和解决方案。

  2. 出现 “ResponseError: socket hang up” 错误通常是由于连接到OSS服务时网络出现问题导致了连接中断。

    这个错误可能有多种原因,例如:网络延迟,本地计算机防火墙或代理过滤等。

    对于您的情况,如果在调用 client.cancel() 方法时出现了错误,可能是由于操作请求已经发出但是因为某种原因没有从OSS服务器收到响应,这时因为连接已经断开所以会报 “socket hang up” 错误。

    为了解决这个问题,有一些操作建议:

    1. 确认您的网络连接稳定,并检查是否存在路由器和防火墙等网络隔离设备限制了对OSS的访问。

    2. 检查Node.js SDK的版本是否较旧,升级到最新的稳定版可能有助于修复一些已知的问题。

    3. 针对您的场景,可以尝试添加重试逻辑,以便出现异常时能够重试。

    4. 建议在请求取消之前添加超时选项,如果请求处理超时,将请求标记为取消。

  3. 您好,OSS断点续传目前还没有提供主动中断的接口,强行中断会导致异常,建议您部署tcpdump或者wireshark抓包,问题复现后再分析数据包。