This commit is contained in:
parent
3dceae4be0
commit
e7a9ddc460
3 changed files with 27 additions and 21 deletions
11
.drone.yml
11
.drone.yml
|
|
@ -4,6 +4,11 @@ type: docker
|
||||||
name: default
|
name: default
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: staticcheck
|
||||||
|
image: golang:1.18.3-alpine3.16
|
||||||
|
commands:
|
||||||
|
- go install honnef.co/go/tools/cmd/staticcheck@latest
|
||||||
|
- staticcheck
|
||||||
- name: build
|
- name: build
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
settings:
|
settings:
|
||||||
|
|
@ -11,6 +16,8 @@ steps:
|
||||||
from_secret: DOCKER_USERNAME
|
from_secret: DOCKER_USERNAME
|
||||||
password:
|
password:
|
||||||
from_secret: DOCKER_PASSWORD
|
from_secret: DOCKER_PASSWORD
|
||||||
repo: 185504a9/fsu
|
repo: 185504a9/sfu
|
||||||
tags: latest
|
tags: latest
|
||||||
target: run_prod
|
target: run_prod
|
||||||
|
depends_on:
|
||||||
|
- staticcheck
|
||||||
17
handlers.go
17
handlers.go
|
|
@ -10,7 +10,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func downloadFile(w http.ResponseWriter, req *http.Request, fileName string) {
|
func downloadFile(w http.ResponseWriter, req *http.Request, fileName string) {
|
||||||
Info.Println(fmt.Sprintf("server: will download %v", fileName))
|
Info.Printf("server: will download %v\n", fileName)
|
||||||
file, err := os.Open(fmt.Sprintf("%v/%v", SFU_FILES_DIR, fileName))
|
file, err := os.Open(fmt.Sprintf("%v/%v", SFU_FILES_DIR, fileName))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Error.Println(err)
|
Error.Println(err)
|
||||||
|
|
@ -34,9 +34,9 @@ func fileExists(fileName string) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteFile(w http.ResponseWriter, req *http.Request, fileName string) {
|
func deleteFile(w http.ResponseWriter, req *http.Request, fileName string) {
|
||||||
Info.Println(fmt.Sprintf("server: will delete %v", fileName))
|
Info.Printf("server: will delete %v\n", fileName)
|
||||||
if !fileExists(fileName) {
|
if !fileExists(fileName) {
|
||||||
Error.Println(fmt.Sprintf("%v does not exist", fileName))
|
Error.Printf("%v does not exist\n", fileName)
|
||||||
http.Error(w, "File not found", http.StatusNotFound)
|
http.Error(w, "File not found", http.StatusNotFound)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -59,12 +59,12 @@ func uploadFile(w http.ResponseWriter, req *http.Request) {
|
||||||
fileExists := fileExists(fileHeader.Filename)
|
fileExists := fileExists(fileHeader.Filename)
|
||||||
forceOverwrite := req.FormValue("force")
|
forceOverwrite := req.FormValue("force")
|
||||||
if fileExists && forceOverwrite != "true" {
|
if fileExists && forceOverwrite != "true" {
|
||||||
Error.Println(fmt.Sprintf("file %v already exists", fileHeader.Filename))
|
Error.Printf("file %v already exists\n", fileHeader.Filename)
|
||||||
http.Error(w, "File already exists", http.StatusConflict)
|
http.Error(w, "File already exists", http.StatusConflict)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !fileExists || (forceOverwrite == "true" && fileExists) {
|
if !fileExists || (forceOverwrite == "true" && fileExists) {
|
||||||
Info.Println(fmt.Sprintf("server: will upload %v", fileHeader.Filename))
|
Info.Printf("server: will upload %v\n", fileHeader.Filename)
|
||||||
out, err := os.Create(fmt.Sprintf("%v/%v", SFU_FILES_DIR, fileHeader.Filename))
|
out, err := os.Create(fmt.Sprintf("%v/%v", SFU_FILES_DIR, fileHeader.Filename))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Error.Println(err)
|
Error.Println(err)
|
||||||
|
|
@ -83,15 +83,14 @@ func uploadFile(w http.ResponseWriter, req *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
http.Error(w, "internal server error", http.StatusInternalServerError)
|
http.Error(w, "internal server error", http.StatusInternalServerError)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func listFiles(w http.ResponseWriter, req *http.Request) {
|
func listFiles(w http.ResponseWriter, req *http.Request) {
|
||||||
Info.Println(fmt.Sprintf("server: will list uploaded files on %v", SFU_FILES_DIR))
|
Info.Printf("server: will list uploaded files on %v\n", SFU_FILES_DIR)
|
||||||
files, err := ioutil.ReadDir(SFU_FILES_DIR)
|
files, err := ioutil.ReadDir(SFU_FILES_DIR)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Warning.Println(fmt.Sprintf("%v does not exist", SFU_FILES_DIR))
|
Warning.Printf("%v does not exist\n", SFU_FILES_DIR)
|
||||||
Info.Println(fmt.Sprintf("will create %v", SFU_FILES_DIR))
|
Info.Printf("will create %v\n", SFU_FILES_DIR)
|
||||||
_ = os.Mkdir(SFU_FILES_DIR, os.ModePerm)
|
_ = os.Mkdir(SFU_FILES_DIR, os.ModePerm)
|
||||||
}
|
}
|
||||||
fmt.Fprint(w, "<html><body><ol>")
|
fmt.Fprint(w, "<html><body><ol>")
|
||||||
|
|
|
||||||
20
main.go
20
main.go
|
|
@ -12,10 +12,10 @@ var SFU_FILES_DIR string = getEnvvar("SFU_FILES_DIR")
|
||||||
var SFU_PORT string = getEnvvar("SFU_PORT")
|
var SFU_PORT string = getEnvvar("SFU_PORT")
|
||||||
|
|
||||||
func getEnvvar(envvar_name string) string {
|
func getEnvvar(envvar_name string) string {
|
||||||
Info.Printf("getting envvar %v", envvar_name)
|
Info.Printf("getting envvar %v\n", envvar_name)
|
||||||
envvar_value, isSet := os.LookupEnv(envvar_name)
|
envvar_value, isSet := os.LookupEnv(envvar_name)
|
||||||
if !isSet {
|
if !isSet {
|
||||||
Error.Println(fmt.Sprintf("%v is not set", envvar_name))
|
Error.Printf("%v is not set\n", envvar_name)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
return envvar_value
|
return envvar_value
|
||||||
|
|
@ -33,9 +33,9 @@ func emptyArray(s []string) []string {
|
||||||
|
|
||||||
func routeFiles(w http.ResponseWriter, r *http.Request) {
|
func routeFiles(w http.ResponseWriter, r *http.Request) {
|
||||||
path := r.URL.Path
|
path := r.URL.Path
|
||||||
Info.Println(fmt.Sprintf("received %v on %v", r.Method, path))
|
Info.Printf("received %v on %v", r.Method, path)
|
||||||
paths := emptyArray(strings.Split(path, "/"))
|
paths := emptyArray(strings.Split(path, "/"))
|
||||||
Info.Println(fmt.Sprintf("paths %v", paths))
|
Info.Printf("paths %v\n", paths)
|
||||||
switch len(paths) {
|
switch len(paths) {
|
||||||
case 1:
|
case 1:
|
||||||
switch r.Method {
|
switch r.Method {
|
||||||
|
|
@ -45,8 +45,8 @@ func routeFiles(w http.ResponseWriter, r *http.Request) {
|
||||||
uploadFile(w, r)
|
uploadFile(w, r)
|
||||||
default:
|
default:
|
||||||
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
||||||
Warning.Println(fmt.Sprintf("%v not allowed", r.Method))
|
Warning.Printf("%v not allowed\n", r.Method)
|
||||||
Error.Println(fmt.Sprintf("will return %v", http.StatusMethodNotAllowed))
|
Error.Printf("will return %v\n", http.StatusMethodNotAllowed)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
case 2:
|
case 2:
|
||||||
|
|
@ -57,8 +57,8 @@ func routeFiles(w http.ResponseWriter, r *http.Request) {
|
||||||
deleteFile(w, r, paths[1])
|
deleteFile(w, r, paths[1])
|
||||||
default:
|
default:
|
||||||
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
||||||
Warning.Println(fmt.Sprintf("%v not allowed", r.Method))
|
Warning.Printf("%v not allowed\n", r.Method)
|
||||||
Error.Println(fmt.Sprintf("will return %v", http.StatusMethodNotAllowed))
|
Error.Printf("will return %v\n", http.StatusMethodNotAllowed)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
http.Error(w, "Not found", http.StatusNotFound)
|
http.Error(w, "Not found", http.StatusNotFound)
|
||||||
|
|
@ -87,10 +87,10 @@ func main() {
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
mux.HandleFunc("/", route)
|
mux.HandleFunc("/", route)
|
||||||
port := fmt.Sprintf(":%v", SFU_PORT)
|
port := fmt.Sprintf(":%v", SFU_PORT)
|
||||||
Info.Println(fmt.Sprintf("running SFU on port %v", port))
|
Info.Printf("running SFU on port %v\n", port)
|
||||||
err := http.ListenAndServe(port, mux)
|
err := http.ListenAndServe(port, mux)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Error.Println(fmt.Sprintf("%v port may not be available", port))
|
Error.Printf("%v port may not be available\n", port)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue