【发布时间】:2017-09-07 23:27:57
【问题描述】:
我正在为工作中的项目实施自定义 sftp 服务器,该项目将使用 AWS 兼容系统作为后端。根据我所看到的,我想我应该使用s3.Uploader and s3.Downloader 或s3.PutObject and s3.GetObject 实现sftp.Handlers 接口。
我之前使用过 io.PipeReader 和 io.PipeWriter 将 io.Writer 传递给 io.Reader 但在这种情况下,我需要执行以下操作:
- 获取:io.ReaderAt
- 输入:io.WriterAt -> ??? -> io.Reader
我猜???在这两种情况下都会有所不同,但它们似乎都是一种管道,我们在其中保存数据,直到它可用于另一端。是否存在这样的事情或者我需要自己实现它?有什么实施建议吗?
【问题讨论】:
-
为什么需要将 s3 SDK 公开为 sftp 处理程序?你觉得自己真正需要的“东西”会做什么?
-
基本上,因为企业是这么说的。我正在改造现有系统。客户希望使用 SFTP,我们无法更改。该项目的其他部分正在使用 S3 克隆,而企业希望现在将提交的内容存储在那里。
-
至于它实际会做什么,仍然是个谜。因此问题。我猜在 Get 示例中它会从 io.Reader 读取填充缓冲区。然后它将等待 ReadAt() 调用,直到缓冲区有可用的数据来获取它。
-
我也有同样的问题,你找到好的解决方案了吗?
-
没有好的解决方案。我最终将传入的文件保存到磁盘,然后再将其上传到 s3。
标签: go