diff --git a/README.md b/README.md index 77a8548..9cdd0be 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,92 @@ -# wsgi server +# python-api-server +## Variables -# dateinmit sleben namen werden überschrieben +``MAX_CONTENT_LENGTH``: maximal Filesize in MB; defaults to 5MB +``UPLOAD_DIRECTORY``: where to store the uploaded files; should be mapped to a volume; defaults to "/uploads" +``AUTH_TOKEN``: token used for authenticating + +## ToDo + +- [ ] wsgi server + +## Example Docker-Compose + +see [docker-compose.yml](./docker-compose.yml) + +## API-Endpoints + +### /list + +#### input + +```bash +curl -H "token: myuploadtoken" http://docker10.host.lan:5040/list | jq +``` + +#### output + +```bash +{ + "files": [ + { + "last_modified": "2023-04-13 11:43:51", + "name": "file1", + "size": 1034 + }, + { + "last_modified": "2023-04-13 11:53:59", + "name": "file2", + "size": 5 + }, + { + "last_modified": "2023-04-13 12:41:18", + "name": "file3", + "size": 3478 + } + ] +} +``` + +### /upload + +If a file is uploaded with the same name as an existing file, it will be overwritten. + +#### input + +```bash +curl -X POST -H "token: myuploadtoken" -F "file=@tests/file" http://docker10.host.lan:5040/upload | jq +``` + +#### output + +```bash +{ + "success": "File 'file' successfully uploaded" +} +``` + +### /download + +#### input + +```bash +wget http://docker10.host.lan:5040/download/file +``` + +### /delete + +#### input + +```bash +curl -X DELETE -H "token: myuploadtoken" http://docker10.host.lan:5040/delete/file | jq +``` + +#### output + +```bash +{ + "success": "File 'file' successfully deleted" +} +``` diff --git a/docker-compose.yml b/docker-compose.yml index 32ac66c..52b1267 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,9 +10,9 @@ services: environment: # FLASK_DEBUG: 1 # for debugging # FLASK_APP: app # for debugging - MAX_CONTENT_LENGTH: 10 # in MB; default 5MB - UPLOAD_DIRECTORY: /uploads # where to store the uploaded files; should be mapped to a docker volume; default "/uploads" - AUTH_TOKEN: myuploadtoken # token used for authenticating + MAX_CONTENT_LENGTH: 10 + UPLOAD_DIRECTORY: /uploads + AUTH_TOKEN: myuploadtoken volumes: uploads: