在golang中传输一个大文件

时间:2014-04-24 15:00:34

标签: go

客户端发送文件,大小可能超过5G,到从属服务器,而不是从服务器发送到主服务器。

奴隶会将临时文件保存到自身吗?我不希望它发生,因为它会降低上传速度并浪费奴隶的记忆。

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

1 个答案:

答案 0 :(得分:5)

是的,有一种避免存储转发方法的标准方法:一旦客户端连接从服务器,后者应该打开与主服务器的连接,然后只需 stream 来自客户的数据。通常,这是使用io.Copy()函数完成的。感谢Go使用接口优秀的鸭子打字,这适用于TCP连接和HTTP请求/响应。

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

解决方案的一部分甚至出现在stackoverflow建议的类似问题中 - here it is