Q:

Как организовать на golang копирование файлов с одного клиента на другой по сети?

Есть два приложения на golang. Одно серверное,другое клиентское.
Они общаются по http и http->websocket (либо предложите другой протокол)
Нужно скопировать папку с находящимися в ней файлами и папками по сети в другое приложение.
Есть ли нормальный алгоритм, как это лучше сделать?
Спасибо.

A:

Можно паковать файлы/папки в .tar.gz и сразу отправлять в соединение (tcp) вместо файла, а на другом конце вычитывать архив и тут же его распаковывать на лету.
Если там веб-сервер уже реализован - можно тот же tar.gz отправить в виде POST-запроса, например как браузер делает.
Обход дерева файлов/папок: https://golang.org/pkg/path/filepath/#Walk
Запаковка в tar: https://golang.org/pkg/archive/tar/
Сжатие: https://golang.org/pkg/compress/gzip/

