我正在使用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
.....
}
}
}
要将io.ReadCloser
转换为io.Reader
,请执行以下操作:
io.ReadCloser
已经是io.Reader
。
io.Reader
转换为io.Writer
是完全不同的事情。你真的不能那样做。您需要详细说明您要执行的操作。