我正在编写一个长时间运行的任务,需要多次从MongoDB(使用mgo)中读取数据,并使用这个模块将其写入xlsx文件。然后再使用os.Open
读取文件并将其存储到FTP服务器上。
Stor
函数会消耗大量内存,因此我认为应该有一种方法可以直接从xlsx.Write将数据传递给ftp.Store,而不必保存文件。(如果我能同时进行流式传输就更完美了,因为在将它们发送到Stor函数之前,我不必将所有文档都保存在服务器内存中)
以下是这些函数的原型
func (f *File) Write(writer io.Writer) (err error)
xlsl
func (ftp *FTP) Stor(path string, r io.Reader) (err error)
ftp
io.Reader
是一个接口,*PipeReader
是一个实现io.Reader
接口的具体类型(写入器也是同样的情况)。因此,您可以在任何需要io.Reader
的地方使用*PipeReader
。 - LeGEC