]> Sergey Matveev's repositories - uploader.git/commitdiff
More logging
authorSergey Matveev <stargrave@stargrave.org>
Mon, 8 Jan 2018 18:48:00 +0000 (21:48 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 8 Jan 2018 18:48:00 +0000 (21:48 +0300)
README
src/uploader/main.go

diff --git a/README b/README
index b97d1adfc6feaca7e545b7784e9b7898e8c913ad..912997137379f897d1f7abfa415318840bc7979f 100644 (file)
--- a/README
+++ b/README
@@ -1,3 +1,11 @@
 Simplest form file uploader.
 It just saves uploaded file from HTML form to the new file on the disk.
 Also it calculates BLAKE2s checksum, replying with it in the answer.
 Simplest form file uploader.
 It just saves uploaded file from HTML form to the new file on the disk.
 Also it calculates BLAKE2s checksum, replying with it in the answer.
+
+You can upload files with curl:
+
+    curl -F fileupload=@somedata.tar.gpg http://localhost:8086/upload/
+
+You can verify integrity locally:
+
+    b2sum -a blake2s somedata.tar.gpg
index 43794c63f18fed4ae88d1848083ae0a9ac60baf2..a18a81916396aefede22351cf552f11190081527 100644 (file)
@@ -11,6 +11,7 @@ import (
        "flag"
        "fmt"
        "io"
        "flag"
        "fmt"
        "io"
+       "log"
        "net"
        "net/http"
        "os"
        "net"
        "net/http"
        "os"
@@ -25,6 +26,7 @@ const (
 )
 
 func upload(w http.ResponseWriter, r *http.Request) {
 )
 
 func upload(w http.ResponseWriter, r *http.Request) {
+       log.Println(r.RemoteAddr, "connected")
        if r.Method == http.MethodGet {
                w.Write([]byte(`<html>
 <head><title>Upload</title></head><body>
        if r.Method == http.MethodGet {
                w.Write([]byte(`<html>
 <head><title>Upload</title></head><body>
@@ -35,22 +37,22 @@ func upload(w http.ResponseWriter, r *http.Request) {
        }
        mr, err := r.MultipartReader()
        if err != nil {
        }
        mr, err := r.MultipartReader()
        if err != nil {
-               fmt.Println(err)
+               log.Println(r.RemoteAddr, err)
                return
        }
        p, err := mr.NextPart()
        if err != nil {
                return
        }
        p, err := mr.NextPart()
        if err != nil {
-               fmt.Println(err)
+               log.Println(r.RemoteAddr, err)
                return
        }
        if p.FormName() != "fileupload" {
                return
        }
        if p.FormName() != "fileupload" {
-               fmt.Println("non file form field")
+               log.Println(r.RemoteAddr, "non file form field")
                return
        }
                return
        }
-       now := time.Now()
-       fd, err := os.OpenFile(now.Format(time.RFC3339Nano), os.O_WRONLY|os.O_CREATE, 0600)
+       fn := time.Now().Format(time.RFC3339Nano)
+       fd, err := os.OpenFile(fn, os.O_WRONLY|os.O_CREATE, 0600)
        if err != nil {
        if err != nil {
-               fmt.Println(err)
+               log.Println(r.RemoteAddr, fn, p.FileName(), err)
                return
        }
        defer fd.Close()
                return
        }
        defer fd.Close()
@@ -62,14 +64,16 @@ func upload(w http.ResponseWriter, r *http.Request) {
        mw := io.MultiWriter(fdBuf, h)
        n, err := io.Copy(mw, p)
        if err != nil {
        mw := io.MultiWriter(fdBuf, h)
        n, err := io.Copy(mw, p)
        if err != nil {
-               fmt.Println(err)
+               log.Println(r.RemoteAddr, fn, p.FileName(), err)
                return
        }
        if err = fdBuf.Flush(); err != nil {
                return
        }
        if err = fdBuf.Flush(); err != nil {
-               fmt.Println(err)
+               log.Println(r.RemoteAddr, fn, p.FileName(), err)
                return
        }
                return
        }
-       fmt.Fprintf(w, "bytes: %d\nBLAKE2s: %s\n", n, hex.EncodeToString(h.Sum(nil)))
+       sum := hex.EncodeToString(h.Sum(nil))
+       fmt.Fprintf(w, "bytes: %d\nBLAKE2s: %s\n", n, sum)
+       log.Println(r.RemoteAddr, fn, p.FileName(), n, sum)
 }
 
 func main() {
 }
 
 func main() {
@@ -80,7 +84,7 @@ func main() {
        if err != nil {
                panic(err)
        }
        if err != nil {
                panic(err)
        }
-       fmt.Println("listening on", *bind)
+       log.Println("listening", *bind)
        ln = netutil.LimitListener(ln, *conns)
        s := &http.Server{
                ReadHeaderTimeout: 10 * time.Second,
        ln = netutil.LimitListener(ln, *conns)
        s := &http.Server{
                ReadHeaderTimeout: 10 * time.Second,