diff --git a/Caddyfile b/Caddyfile
deleted file mode 100644
index 644627c..0000000
--- a/Caddyfile
+++ /dev/null
@@ -1,15 +0,0 @@
-http://localhost
-
-route /api/v1/* {
- uri strip_prefix /api/v1
- reverse_proxy app
-}
-
-route /docs/* {
- uri strip_prefix /docs
- file_server {
- root /usr/share/caddy/www/design
- index index.html
- browse true
- }
-}
diff --git a/Dockerfile b/Dockerfile
index 5b8fe3e..0da2d38 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.18.3-alpine3.16
+FROM golang:1.17.11-alpine3.16
ENV APP_ROOT /opt/sfu
@@ -7,8 +7,7 @@ WORKDIR "$APP_ROOT"
COPY go.mod .
COPY main.go .
-COPY logger.go .
RUN go build \
- && rm -r go.mod *.go
+ && rm -r go.mod main.go
ENTRYPOINT [ "/bin/sh", "-c", "$APP_ROOT/main"]
\ No newline at end of file
diff --git a/design/index.html b/design/index.html
deleted file mode 100644
index c055fa0..0000000
--- a/design/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- Scullion REST API
-
-
-
-
-
-
-
diff --git a/design/openapi.yml b/design/openapi.yml
deleted file mode 100644
index 9538001..0000000
--- a/design/openapi.yml
+++ /dev/null
@@ -1,144 +0,0 @@
-openapi: "3.0.3"
-info:
- title: sfu
- version: 0.1.0
- description: file upload server
-servers:
- - url: http://localhost:8080/api/v1/
- description: local server
-paths:
- /:
- get:
- summary: "list all uploaded files"
- description: "list all uploaded files"
- operationId: "list_files"
- responses:
- 200:
- description: "file list successful"
- content:
- text/plain:
- schema:
- type: array
- items:
- type: string
- format: uri
-
- 500:
- description: "internal server error"
- content:
- text/plain:
- schema:
- type: string
- default: "internal server error"
- post:
- summary: "upload file"
- description: "uploaded a file"
- operationId: "upload_file"
- requestBody:
- content:
- multipart/form-data:
- schema:
- type: object
- properties:
- file:
- type: string
- format: binary
- description: "file to upload"
- parameters:
- - name: force
- in: query
- description: "force upload file which may overwrite an existing file with the same name"
- required: false
- schema:
- type: boolean
- default: false
- responses:
- 201:
- description: "file upload successful"
- content:
- text/plain:
- schema:
- type: array
- items:
- type: string
- 409:
- description: "file already exists"
- content:
- text/plain:
- schema:
- type: string
- default: "file already exists"
- 500:
- description: "internal server error"
- content:
- text/plain:
- schema:
- type: string
- default: "internal server error"
- /{file_name}:
- get:
- summary: "get file"
- description: "get file"
- operationId: "get_file"
- parameters:
- - name: file_name
- in: path
- description: "file name"
- required: true
- schema:
- type: string
- responses:
- 200:
- description: "file download successful"
- content:
- text/plain:
- schema:
- type: string
- format: binary
- 404:
- description: "file not found"
- content:
- text/plain:
- schema:
- type: string
- default: "file not found"
- 500:
- description: "internal server error"
- content:
- text/plain:
- schema:
- type: string
- default: "internal server error"
- delete:
- summary: "delete file"
- description: "delete file"
- operationId: "delete_file"
- parameters:
- - name: file_name
- in: path
- description: "file name"
- required: true
- schema:
- type: string
- responses:
- 200:
- description: "file delete successful"
- content:
- text/plain:
- schema:
- type: string
- default: "file delete successful"
- 404:
- description: "file not found"
- content:
- text/plain:
- schema:
- type: string
- default: "file not found"
- 500:
- description: "internal server error"
- content:
- text/plain:
- schema:
- type: string
- default: "internal server error"
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index c6b60e7..456d0b5 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,15 +4,7 @@ services:
app:
build:
context: .
- volumes:
- - "${PWD}/files:${SFU_FILES_DIR},z"
- env_file:
- - .env
-
- proxy:
- image: caddy
- volumes:
- - ./Caddyfile:/etc/caddy/Caddyfile
- - ./design:/usr/share/caddy/www/design
ports:
- - '8080:80'
+ - "8080:80"
+ env_file:
+ - .env
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 6967dfd..c0ecf8b 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,3 @@
module main
-go 1.18
+go 1.17
diff --git a/logger.go b/logger.go
deleted file mode 100644
index a150e41..0000000
--- a/logger.go
+++ /dev/null
@@ -1,11 +0,0 @@
-package main
-
-import (
- "log"
- "os"
-)
-
-var Info = log.New(os.Stdout, "\u001b[34mINFO: \u001B[0m", log.LstdFlags|log.Lshortfile)
-var Warning = log.New(os.Stdout, "\u001b[33mWARNING: \u001B[0m", log.LstdFlags|log.Lshortfile)
-var Error = log.New(os.Stdout, "\u001b[31mERROR: \u001b[0m", log.LstdFlags|log.Lshortfile)
-var Debug = log.New(os.Stdout, "\u001b[36mDEBUG: \u001B[0m", log.LstdFlags|log.Lshortfile)
diff --git a/main.go b/main.go
index e408be7..8b11de7 100644
--- a/main.go
+++ b/main.go
@@ -4,12 +4,15 @@ import (
"fmt"
"io"
"io/ioutil"
+ "log"
"net/http"
"os"
)
-var SFU_FILES_DIR string = get_envvar_or_fatal("SFU_FILES_DIR")
-var SFU_PORT string = get_envvar_or_fatal("SFU_PORT")
+var Info = log.New(os.Stdout, "\u001b[34mINFO: \u001B[0m", log.LstdFlags|log.Lshortfile)
+var Warning = log.New(os.Stdout, "\u001b[33mWARNING: \u001B[0m", log.LstdFlags|log.Lshortfile)
+var Error = log.New(os.Stdout, "\u001b[31mERROR: \u001b[0m", log.LstdFlags|log.Lshortfile)
+var Debug = log.New(os.Stdout, "\u001b[36mDEBUG: \u001B[0m", log.LstdFlags|log.Lshortfile)
func upload_file(w http.ResponseWriter, req *http.Request) {
file, fileHeader, err := req.FormFile("file")
@@ -18,19 +21,19 @@ func upload_file(w http.ResponseWriter, req *http.Request) {
}
defer file.Close()
- f, err := os.OpenFile(fmt.Sprintf("%v/%v", SFU_FILES_DIR, fileHeader.Filename), os.O_WRONLY|os.O_CREATE, 0666)
+ f, err := os.OpenFile(fmt.Sprintf("%v/%v", get_envvar_or_fatal("SFU_FILES_DIR"), fileHeader.Filename), os.O_WRONLY|os.O_CREATE, 0666)
defer f.Close()
io.Copy(f, file)
- w.WriteHeader(http.StatusCreated)
}
func list_uploaded_files(w http.ResponseWriter, req *http.Request) {
- Info.Println(fmt.Sprintf("server: will list uploaded files on %v", SFU_FILES_DIR))
- files, err := ioutil.ReadDir(SFU_FILES_DIR)
+ files_dir := get_envvar_or_fatal("SFU_FILES_DIR")
+ Info.Println(fmt.Sprintf("server: will list uploaded files on %v", files_dir))
+ files, err := ioutil.ReadDir(files_dir)
if err != nil {
- Warning.Println(fmt.Sprintf("%v does not exist", SFU_FILES_DIR))
- Info.Println(fmt.Sprintf("will create %v", SFU_FILES_DIR))
- _ = os.Mkdir(SFU_FILES_DIR, os.ModePerm)
+ Warning.Println(fmt.Sprintf("%v does not exist", files_dir))
+ Info.Println(fmt.Sprintf("will create %v", files_dir))
+ _ = os.Mkdir(files_dir, os.ModePerm)
}
for _, f := range files {
fmt.Fprintf(w, "%v\n", f.Name())
@@ -68,7 +71,7 @@ func main() {
Error.Println(fmt.Sprintf("will return %v", http.StatusMethodNotAllowed))
}
})
- port := fmt.Sprintf(":%v", SFU_PORT)
+ port := fmt.Sprintf(":%v", get_envvar_or_fatal("SFU_PORT"))
Info.Println(fmt.Sprintf("running SFU on port %v", port))
err := http.ListenAndServe(port, nil)
if err != nil {