将io.ReadCloser转换为io.Reader in Go

问题描述 投票:-3回答:1

我正在使用archive/zip库,在将其上传到s3之前,我需要即时对zip存档中的文件进行修改。目前,我正在获取一个io.ReadCloser,但是我用来修改用户的功能需要一个io.Reader

//Function Signature:
Convert(r io.Reader, w io.Writer, ...)

我还需要io.Writer ...奖励积分,如果您可以帮助我确定如何创建作家。这是一些可能提供上下文的示例代码:

for _, f := range r.File {
    if filepath.Ext(f.Name) != ".txt" {

      _, filename := path.Split(f.Name)
      var rc io.ReadCloser
      if rc, err = f.Open(); err == nil {

        // FIXME: Convert
        if err = Convert(rc.Reader, *zip.Writer.Create(f.Name), ...); err != nil {
          errStr := fmt.Sprintf("Unable to convert")
          log.Println(errStr)

        } else {

          log.Println("Success!")

        }

        // Upload to s3
        .....
      }   
    }   
  }
go zip reader writer
1个回答
0
投票
  1. 要将io.ReadCloser转换为io.Reader,请执行以下操作:

    没有!

io.ReadCloser已经是io.Reader

  1. io.Reader转换为io.Writer是完全不同的事情。你真的不能那样做。您需要详细说明您要执行的操作。
© www.soinside.com 2019 - 2024. All rights reserved.