对象存储OSS中使用node.js SDK调用断点续传时
const OSS = require(‘ali-oss’);
const client = new OSS({})
client.cancel()
nodejs会报错ResponseError: socket hang up
求大神告知一下原因和解决办法!!!!!!!!!!!!!!!!!!!!!!!!
对象存储OSS中使用node.js SDK调用断点续传时
const OSS = require(‘ali-oss’);
const client = new OSS({})
client.cancel()
nodejs会报错ResponseError: socket hang up
求大神告知一下原因和解决办法!!!!!!!!!!!!!!!!!!!!!!!!
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 错误。建议您可以在取消上传任务后重新创建一个新的连接,以便继续执行其他上传操作。
如果您仍然无法解决问题,建议您可以在阿里云控制台上查看相关服务的错误日志和监控信息,以便更好地了解问题的原因和解决方案。
出现 “ResponseError: socket hang up” 错误通常是由于连接到OSS服务时网络出现问题导致了连接中断。
这个错误可能有多种原因,例如:网络延迟,本地计算机防火墙或代理过滤等。
对于您的情况,如果在调用 client.cancel() 方法时出现了错误,可能是由于操作请求已经发出但是因为某种原因没有从OSS服务器收到响应,这时因为连接已经断开所以会报 “socket hang up” 错误。
为了解决这个问题,有一些操作建议:
确认您的网络连接稳定,并检查是否存在路由器和防火墙等网络隔离设备限制了对OSS的访问。
检查Node.js SDK的版本是否较旧,升级到最新的稳定版可能有助于修复一些已知的问题。
针对您的场景,可以尝试添加重试逻辑,以便出现异常时能够重试。
建议在请求取消之前添加超时选项,如果请求处理超时,将请求标记为取消。
您好,OSS断点续传目前还没有提供主动中断的接口,强行中断会导致异常,建议您部署tcpdump或者wireshark抓包,问题复现后再分析数据包。