From c52f37e7110667c68b4d3a5f0ae04b14b605a76b Mon Sep 17 00:00:00 2001 From: hgw Date: Thu, 28 Dec 2023 04:01:08 +0000 Subject: [PATCH] Bin the URL length setting --- README.md | 4 ++-- main.go | 29 ++++------------------------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 55d0e2d..e6b5bb7 100644 --- a/README.md +++ b/README.md @@ -97,10 +97,10 @@ You can upload files using cURL like so: curl -F file=@$1 https://hardfiles.org/ ``` -Additionally, you can append some extra options to modify the expiry time or file name length. Currently the file expiry time must be provided in seconds and is limited to 5 days maximum. The file name length is limited to 128 characters. The following example will return a file that expires in 48 hours rather than the default 24 and a file name length of 64 characters: +Additionally, you can specify the amount of time before your upload is removed from the server. Currently the file expiry time must be provided in seconds and is limited to 5 days maximum. The following example will return a file that expires in 48 hours rather than the default of 24 hours. ```shell -curl -F file=@$1 -F expiry=172800 -F url_len=64 https://hardfiles.org/ +curl -F file=@$1 -F expiry=172800 https://hardfiles.org/ ``` ### Bash Alias diff --git a/main.go b/main.go index 373e34e..42a3878 100644 --- a/main.go +++ b/main.go @@ -91,12 +91,12 @@ func Zeros(path string, size int64) error { return nil } -func NameGen(fileNameLength int) string { +func NameGen() string { const chars = "abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789" ll := len(chars) - b := make([]byte, fileNameLength) + b := make([]byte, conf.FileLen) rand.Read(b) // generates len(b) random bytes - for i := int64(0); i < int64(fileNameLength); i++ { + for i := int64(0); i < int64(conf.FileLen); i++ { b[i] = chars[int(b[i])%ll] } return string(b) @@ -113,9 +113,7 @@ func UploadHandler(w http.ResponseWriter, r *http.Request) { // expiry time var name string var ttl int64 - var fileNameLength int - fileNameLength = 0 ttl = 0 file, _, err := r.FormFile("file") @@ -151,28 +149,9 @@ func UploadHandler(w http.ResponseWriter, r *http.Request) { ttl = int64(conf.DefaultTTL) } - // Check if the file length parameter exists and also if it's too long - if r.PostFormValue("url_len") != "" { - fileNameLength, err = strconv.Atoi(r.PostFormValue("url_len")) - if err != nil { - log.Error().Err(err).Msg("url_len could not be parsed") - } else { - // if the length is < 3 and > 128 return error - if fileNameLength < 3 || fileNameLength > 128 { - w.WriteHeader(http.StatusBadRequest) - return - } - } - } - - // Default to conf if not present - if fileNameLength == 0 { - fileNameLength = conf.FileLen - } - // generate + check name for { - id := NameGen(fileNameLength) + id := NameGen() name = id + mtype.Extension() if !Exists(conf.FileFolder + "/" + name) { break