Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2022
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.73 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "io"
  6.     "log"
  7.     "net"
  8.     "os"
  9.     "compress/gzip"
  10. )
  11.  
  12. func main() {
  13.     uploadFile("./aFile", "localhost:4040")
  14. }
  15.  
  16. func uploadFile(srcFile, serverAddr string) {
  17.     // connect to server
  18.     conn, err := net.Dial("tcp", serverAddr)
  19.     CheckError(err)
  20.     defer conn.Close()
  21.  
  22.     in, err := os.Open(srcFile)
  23.     if err != nil {
  24.         log.Fatal(err)
  25.     }
  26.     pr, pw := io.Pipe()
  27.     gw, err := gzip.NewWriterLevel(pw, 7)
  28.     CheckError(err)
  29.     go func() {
  30.         n, err := io.Copy(gw, in)
  31.         gw.Close()
  32.         pw.Close()
  33.         log.Printf("copied    %v %v", n, err)
  34.     }()
  35.     _, err = io.Copy(conn, pr)
  36.     CheckError(err)
  37. }
  38.  
  39. func CheckError(err error) {
  40.     if err != nil {
  41.         fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
  42.         os.Exit(1)
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement