diff options
author | clsr <clsr@clsr.net> | 2016-11-15 16:57:51 +0100 |
---|---|---|
committer | clsr <clsr@clsr.net> | 2016-11-15 19:28:55 +0100 |
commit | d3536e6741351fb13a9f6a327637bc2a4619fea4 (patch) | |
tree | f9cf707ed2b3daf6bea2d7a07f0c1ce9efbe5c23 | |
parent | 1e55e61786eaedd59c067f4306fb8427dc92ef52 (diff) | |
download | gomf-d3536e6741351fb13a9f6a327637bc2a4619fea4.tar.gz gomf-d3536e6741351fb13a9f6a327637bc2a4619fea4.zip |
Move storage to its own packagev0.5.0
-rw-r--r-- | api.go | 11 | ||||
-rw-r--r-- | main.go | 25 | ||||
-rw-r--r-- | storage/magic.go (renamed from magic.go) | 2 | ||||
-rw-r--r-- | storage/storage.go (renamed from storage.go) | 2 | ||||
-rw-r--r-- | website.go | 4 |
5 files changed, 23 insertions, 21 deletions
@@ -6,6 +6,7 @@ import ( "encoding/hex" "encoding/json" "fmt" + "git.clsr.net/gomf/storage" "io" "mime" "net/http" @@ -17,9 +18,9 @@ import ( ) func handleFile(w http.ResponseWriter, r *http.Request) { - f, hash, size, modtime, err := storage.Get(strings.TrimLeft(r.URL.Path, "/")) + f, hash, size, modtime, err := uploads.Get(strings.TrimLeft(r.URL.Path, "/")) if err != nil { - if _, ok := err.(ErrNotFound); ok { + if _, ok := err.(storage.ErrNotFound); ok { http.Error(w, err.Error(), http.StatusNotFound) } else { http.Error(w, err.Error(), http.StatusInternalServerError) @@ -94,13 +95,13 @@ func handleUpload(w http.ResponseWriter, r *http.Request) { continue } - id, hash, size, err := storage.New(part, part.FileName()) + id, hash, size, err := uploads.New(part, part.FileName()) if err != nil { resp.ErrorCode = http.StatusInternalServerError resp.Description = err.Error() - if _, ok := err.(ErrTooLarge); ok { + if _, ok := err.(storage.ErrTooLarge); ok { resp.ErrorCode = http.StatusRequestEntityTooLarge - } else if _, ok := err.(ErrForbidden); ok { + } else if _, ok := err.(storage.ErrForbidden); ok { resp.ErrorCode = http.StatusForbidden } break @@ -3,13 +3,14 @@ package main import ( "flag" "fmt" + "git.clsr.net/gomf/storage" "math/rand" "net/http" "strings" "time" ) -var storage *Storage +var uploads *storage.Storage var ( uploadUrl string @@ -69,12 +70,12 @@ func main() { listenHttps := flag.String("https", "", "address to listen on for HTTPS") cert := flag.String("cert", "", "path to TLS certificate (for HTTPS)") key := flag.String("key", "", "path to TLS key (for HTTPS)") - maxSize := flag.Int64("max-size", DefaultMaxSize, "max filesize in bytes") + maxSize := flag.Int64("max-size", storage.DefaultMaxSize, "max filesize in bytes") filterMime := flag.String("filter-mime", "application/x-dosexec,application/x-msdos-program", "comma-separated list of filtered MIME types") filterExt := flag.String("filter-ext", "exe,dll,msi,scr,com,pif", "comma-separated list of filtered file extensions") whitelist := flag.Bool("whitelist", false, "use filter as a whitelist instead of blacklist") grill := flag.Bool("grill", false, "enable grills") - idLength := flag.Int("id-length", DefaultIdLength, "length of uploaded file IDs") + idLength := flag.Int("id-length", storage.DefaultIdLength, "length of uploaded file IDs") idCharset := flag.String("id-charset", "", "charset for uploaded file IDs (default lowercase letters a-z)") enableLog := flag.Bool("log", false, "enable logging") logIP := flag.Bool("log-ip", false, "log IP addresses") @@ -91,17 +92,17 @@ func main() { initWebsite() - storage = NewStorage("upload") - storage.FilterExt = strings.Split(*filterExt, ",") - for i := range storage.FilterExt { - storage.FilterExt[i] = "." + storage.FilterExt[i] + uploads = storage.NewStorage("upload") + uploads.FilterExt = strings.Split(*filterExt, ",") + for i := range uploads.FilterExt { + uploads.FilterExt[i] = "." + uploads.FilterExt[i] } - storage.FilterMime = strings.Split(*filterMime, ",") - storage.Whitelist = *whitelist - storage.IdLength = *idLength - storage.MaxSize = *maxSize + uploads.FilterMime = strings.Split(*filterMime, ",") + uploads.Whitelist = *whitelist + uploads.IdLength = *idLength + uploads.MaxSize = *maxSize if *idCharset != "" { - storage.IdCharset = *idCharset + uploads.IdCharset = *idCharset } if !*enableLog { diff --git a/magic.go b/storage/magic.go index c93e15d..16f655d 100644 --- a/magic.go +++ b/storage/magic.go @@ -1,4 +1,4 @@ -package main +package storage // #cgo LDFLAGS: -lmagic // #include <stdlib.h> diff --git a/storage.go b/storage/storage.go index c0e8130..3e2b816 100644 --- a/storage.go +++ b/storage/storage.go @@ -1,4 +1,4 @@ -package main +package storage import ( "crypto/sha1" @@ -80,8 +80,8 @@ func newContext() pageContext { SiteName: siteName, Abuse: abuseMail, Contact: contactMail, - MaxSizeBytes: storage.MaxSize, - MaxSize: humanize(storage.MaxSize), + MaxSizeBytes: uploads.MaxSize, + MaxSize: humanize(uploads.MaxSize), Pages: pages, } } |