go - 有没有一种简单的方法来缓冲 io.ReaderAt 和 io.WriterAt?

标签 go

我正在为一个将使用 AWS 兼容系统作为后端的项目实现自定义 sftp 服务器。根据我所看到的,我认为我应该实现 sftp.Handlers使用 s3.Uploader and s3.Downloader 的界面或 s3.PutObject and s3.GetObject .

我用过 io.PipeReaderio.PipeWriter在将 io.Writer 通过管道传输到 io.Reader 之前,但在这种情况下,我需要执行以下操作:

  • 获取:io.ReaderAt <- ??? <- io.Reader
  • 放:io.WriterAt -> ??? -> io.Reader

我猜???在这两种情况下都会有所不同,但它们看起来都像是一种管道,我们在其中保存数据直到另一端可用。是否存在这样的事情,或者我需要自己实现吗?有什么实现建议吗?

最佳答案

我个人正在使用 https://github.com/avvmoto/buf-readerat专门缓冲 ReadAt。为我省去了很多痛苦。

关于go - 有没有一种简单的方法来缓冲 io.ReaderAt 和 io.WriterAt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44529031/

相关文章:

go - make([]string) 和 []string{} 有什么区别

go - (Go) 如何使用toml文件?

go - graphql-go : Use an Object as Input Argument to a Query

go - 如何从多个 goroutines 共享的单个 channel 中读取

parsing - 如何从行中删除\n

arrays - 了解数组和 slice 的内存布局

go - 无法通过-extldflags

go - 缩短 Go/Golang 中导入的变量导出?

sqlite - 带有 SQLITE3 的 GO API 无法从数据库中删除元组

postgresql - Google App Engine Golang 连接到 Cloud SQL Postgres unix 拨号没有这样的文件或目录