go - 在golang中传输一个大文件

标签 go

客户端发送文件,大小可能大于5G,给从服务器,然后从服务器发送给主服务器。

slave 会保存临时文件给自己吗?我不希望它发生,因为它会减慢上传速度并浪费奴隶的内存。

有什么办法可以避免这种情况?在 golang 中传输大文件的最佳方式是什么?

最佳答案

是的,有一种标准方法可以避免存储转发方法:一旦客户端连接到从服务器,后者就应该打开到主服务器的连接,然后只是数据从那里的客户那里。通常这是使用 io.Copy() 函数完成的。感谢 Go 出色的使用接口(interface)的鸭子类型,这适用于 TCP 连接和 HTTP 请求/响应。

(为了获得更好的解释,您必须缩小问题范围。)

部分解决方案甚至出现在 stackoverflow 提出的类似问题中— here it is .

关于go - 在golang中传输一个大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23272663/

相关文章:

go - 不改变接收器的接口(interface)

go - 在指针方法接收器中重新分配

algorithm - 如何计算非零值的加权平均值?

go - 是否可以从另一个函数中读取一个函数 "return"?

sql - 是否可以使用 GoLang 数据库/sql 按名称检索列值

go - 通过引用或值

go - 在 Go 中读取 gzip 后的 HTTP 响应

postgresql - Golang Postgresql 数组

go - 如何使用带有 http.TimeoutHandler 的 gorilla 多路复用器

go - 为什么这个 OrDone Channel Implementation 从 Done Channel 收到两次?