All files are stored inside the filesystem folder, which is automatically created inside the working directory of fs-over-http.
Supported query args and their values:
-
sort-
name(supported & default) -
date(supported) -
reverse(planned)
-
-
format-
plain(supported & default) -
json(planned) -
visual(planned)
-
Read the X-Server-Message header to get the response message.
Read the X-Modified-Path header to get the successfully modified path (eg POST / PUT / DELETE).
If the path is a folder it will end with /, otherwise it will not end in a /.
The only time you will get an error message as output instead of GET contents is on a non-200 response.
When using any of the following examples, they will write to the filesystem folder. If you want to write to the public folder, you need to append /public to your domain, eg localhost:6060/public/myfile.txt.
This only applies when you are using a token to access FOH. /public is automatically added when not accessing FOH with a token.
# Read the root directory
curl -X GET -H "Auth: $TOKEN" localhost:6060
# Example output:
# filesystem/
# ├── asd/
# ├── myfile.txt
# ├── openjdk.png
# └── uwu
#
# 1 directory, 3 files
# Read a file
curl -X GET -H "Auth: $TOKEN" localhost:6060/myfile.txt
# Example output:
# I created this file with http!curl -X POST -H "Auth: $TOKEN" localhost:6060/someimage.png -F "file=@$HOME/Downloads/myimage.jpg"curl -X POST -H "Auth: $TOKEN" localhost:6060 -F "dir=my_folder"# Note that this will overwrite an existing file
curl -X POST -H "Auth: $TOKEN" localhost:6060/myfile.txt -F "content=I created this file with http!"# Note that this will overwrite an existing file
curl -X POST -H "Auth: $TOKEN" localhost:6060/myfile.txt -H "Content: I created this file with http!"# Note that this append to an existing file, and create a new file if one does not exist
curl -X PUT -H "Auth: $TOKEN" localhost:6060/myfile.txt -F "content=I appended content to this file with http!"curl -X DELETE -H "Auth: $TOKEN" localhost:6060/myfile.txtThere is a screenshot uploader example in the scripts folder.
You will have to add the token in your ~/.env and edit the arguments that you want.
# .env
FOH_SERVER_AUTH="secure token"I have the keybinds assigned in my KDE custom commands, it allows you to run anything you want with a keyboard shortcut. For non-KDE you'll have to find your own way.
Alternatively, if you'd like, here's a bunch of bash aliases you can use with examples
# get owo.txt
get() { curl -X GET -H "Auth: $TOKEN" "localhost:6060/$1"; }
# upload someimage.png ~/Pictures/someimage.png
upload() { curl -X POST -H "Auth: $TOKEN" "localhost:6060/$1" -F "file=@$(echo "$2" | sed "s/~/\$HOME/g")"; }
# mkdir my_folder
mkdir() { curl -X POST -H "Auth: $TOKEN" "localhost:6060" -F "dir=$1"; }
# mkfile myfile.txt "I created this file with http!"
mkfile() { curl -X POST -H "Auth: $TOKEN" "localhost:6060/$1" -F "content=$2"; }
# appendfile myfile.txt "I appended content to this file with http!"
appendfile() { curl -X PUT -H "Auth: $TOKEN" "localhost:6060/$1" -F "content=$2"; }
# rm myfile.txt
rm() { curl -X DELETE -H "Auth: $TOKEN" "localhost:6060/$1"; }