From c8b23c79b99f0a3e9d015995574e16ab5ba08526 Mon Sep 17 00:00:00 2001 From: jabuxas Date: Tue, 15 Oct 2024 22:59:01 -0300 Subject: [PATCH] docs: add more examples to uploads --- README.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8a2fa01..dea80a1 100644 --- a/README.md +++ b/README.md @@ -38,27 +38,87 @@ docker compose up -d # might be docker-compose depending on distro ## uploading -- then, simply upload your files with curl: +#### with curl + +- to upload your files with curl: ```bash curl -F "file=@/path/to/file" -H "X-Auth: "$(cat /path/to/.key) http://localhost:3235/ ``` +- you should probably create an `alias` or a `function` to do this automatically for you. +
+click for an example for bash/zsh: + +```bash +pst() { + local file + + if [[ -p /dev/stdin ]]; then + file=$(mktemp) + cat > "$file" + elif [[ -n $1 ]]; then + file="$1" + else + echo "Usage: pst [file]" + return 1 + fi + + curl -F "file=@$file" -H "X-Auth: $(cat ~/.key)" https://paste.jabuxas.xyz + + if [[ -p /dev/stdin ]]; then + rm "$file" + fi +} +``` + +
+ +
+click for an example for fish shell: + +```bash +function pst + set -l file + + if command test -p /dev/stdin + set file "/tmp/tmp.txt" + cat > $file + else if test -n "$argv[1]" + set file "$argv[1]" + end + + curl -F "file=@$file" -H "X-Auth: $(cat ~/.key)" https://paste.jabuxas.xyz + + if command test -p /dev/stdin + rm "$file" + end +end +``` + +
+ +#### through the browser + +- you can only upload text through the browser, to do so, simply write text in the form in the default webpage and click upload. +- this upload can be restricted to need authentication or not, controlled by an environment variable. + ## theming - there is an example homepage in `static/` you can edit directly, which the server will serve automatically - if running with docker, it's also possible to override `/static` inside the container with your own page. + - otherwise you will need to clone this repository and edit `static/` and `templates/` manually, or recreate the structure. - same thing with templates in `templates/` - it is preferred to use `dev/` for that reason, since it is git-ignored and that way makes it easier if wanting to update regularly without making changes to the tree ## docs - `ABYSS_URL`: this is used for the correct formatting of the response of `curl`. -- `AUTH_USERNAME | AUTH_PASSWORD`: this is used to access `/tree/`, which shows all uploaded files +- `AUTH_USERNAME | AUTH_PASSWORD`: this is used to access `/tree`, which shows all uploaded files - `UPLOAD_KEY`: this is key checked when uploading files. if the key doesn't match with server's one, then it refuses uploading. - `ABYSS_FILEDIR`: this points to the directory where abyss will save the uploads to. defaults to `./files` - `ABYSS_PORT`: this is the port the server will run on. safe to leave empty. defaults to 3235 -- `SHOULD_AUTH`: if it is `yes`, then to upload files you will need authentication (same as `/tree`), anything other than that and upload is free for anyone +- `SHOULD_AUTH`: if it is `yes`, then to upload text through the browser you will need authentication (same auth as `/tree`), any value other than that and upload is auth-less ## todo: