Sto scrivendo un'attività a lunga esecuzione che recupera da mongodb (usando mgo) più volte. Quindi scrivilo su un file xlsx usando this module. Quindi rileggilo usando os.Open
quindi memorizzalo sul mio server ftp.Come collegare io.Reader e io.Writer?
Stor
la funzione consuma così tanto la memoria, quindi penso che ci dovrebbe essere un modo per non salvare il file ma passare i miei dati da xlsx.Write a ftp.Store direttamente. (Se posso streaming contemporaneamente sarebbe perfetto perché io non devo tenere tutti i miei documenti in memoria del server prima di inviarli alla funzione Stor)
Questi sono prototipi delle funzioni
func (f *File) Write(writer io.Writer) (err error)
xlsl
func (ftp *FTP) Stor(path string, r io.Reader) (err error)
ftp
io.Pipe() non restituisce io.Writer e io.Reader ma restituisce * PipeReader, * PipeWriter. Sono gli stessi? –
@ MethuzKaewsai-kao: ['io.Reader'] (https://golang.org/pkg/io/#Reader) è un'interfaccia,' * PipeReader' è un tipo concreto che implementa l'interfaccia 'io.Reader' . (Lo stesso vale per gli scrittori). Quindi sì, puoi usare un '* PipeReader' in qualsiasi posto che accetti un' io.Reader'. – LeGEC