为了账号安全,请及时绑定邮箱和手机立即绑定

IPFS http 响应偶尔会出现 EOF 错误且正文正确

IPFS http 响应偶尔会出现 EOF 错误且正文正确

Go
扬帆大鱼 2022-06-21 16:32:34
当我在下面的代码中调试时,有时它可以正确地从正文中读取数据,但会出现EOF错误。func (r *trailerReader) Read(b []byte) (int, error) {    n, err := r.resp.Body.Read(b)    if err != nil {        if e := r.resp.Trailer.Get("X-Stream-Error"); e != "" {            err = errors.New(e)        }    }    return n, err}我在我的代码中调用了这个方法:// FilesRead read a file in a given MFSfunc (s *Shell) FilesRead(ctx context.Context, path string, options ...FilesOpt) (io.ReadCloser, error) {    rb := s.Request("files/read", path)    for _, opt := range options {        if err := opt(rb); err != nil {            return nil, err        }    }    resp, err := rb.Send(ctx)    if err != nil {        return nil, err    }    if resp.Error != nil {        return nil, resp.Error    }    return resp.Output, nil}有什么想法吗?
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

正如 Stebalien 在这个Github 问题中所说,这是一个 go 的预期行为Reader

请参阅本文档的第三段

当 Read 在成功读取 n > 0 个字节后遇到错误或文件结束条件时,它会返回读取的字节数。它可能会从同一次调用中返回(非零)错误,或者从后续调用中返回错误(并且 n == 0)。这种一般情况的一个例子是,在输入流末尾返回非零字节数的 Reader 可能会返回 err == EOF 或 err == nil。下一次读取应该返回 0,EOF。


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号