Skip to main content

WEB APP for sharing files via URL links.

Project description

sharefile-webui

Simple and lightweight responsive web app for sharing files via URL link. Supports drag&drop chunk upload of large files, basic file and directory operations. Application is based on Python Flask, Flask-Restful and React for simple file administration. It can be comfortebly run on Raspberry Pi.

Usage

sharefile-webui --help
usage: sharefile-webui [-h] [-o HOST] [-p PORT] [-u ADD_USER] [-r REMOVE_USER] [-l] [-t] [-c] share_directory

Share Files WEB UI v1.5.0

positional arguments:
  share_directory       Directory where shares are stored.

optional arguments:
  -h, --help            show this help message and exit
  -o HOST, --host HOST  APP server host
  -p PORT, --port PORT  APP server port
  -u ADD_USER, --add-user ADD_USER
                        Add admin user in user@password format.
  -r REMOVE_USER, --remove-user REMOVE_USER
                        Remove admin user from users list.
  -l, --list-users      List existing admin users
  -t, --list-tokens     List file tokens into stdout
  -c, --clear-tokens    Clear file tokens database

Example:

sharefile-webui -u username@password
sharefile-webui -p 5555 /tmp

This example will share /tmp directory on http://localhost:5555 By requesting this URL you will be prompted to fill user and password to access admin UI to manage file sharing. For each file of directory you can generate secure token. When secure token is generated file could be shared via URL link like this http://localhost:5555/share/directory-name/file-name?token=12345.

Instalation

pip3 install sharefile-webui

systemd configuration

PORT=5555
SHARE_DIR=/tmp
echo "[Unit]
Description=ShareFileWebUI

[Service]
ExecStart=/bin/bash -c \"/usr/local/bin/sharefile-webui -p ${PORT} ${SHARE_DIR}  >> /var/log/sharefile-webui.log 2>&1 &\"
ExecStop=killall sharefile-webui
ExecRestart=/bin/bash -c \"killall sharefile-webui && /usr/local/bin/sharefile-webui  -p ${PORT} ${SHARE_DIR} >> /var/log/sharefile-webui.log 2>&1 &\"
ExecStatus=ps -ax | grep sharefile-webui
Type=forking

[Install]
WantedBy=multi-user.target
" > /lib/systemd/system/sharefile-webui.service
systemctl enable sharefile-webui.service

after that is possible to use

systemctl start sharefile-webui.service

Build it by your own

JS

Build JS production version is not nessesry, because it is already buid in sharefile_webui/static/js directory. But if you want to change something in UI, lets do it by running:

sudo apt update
sudo apt install nodejs npm
cd sharefile_webui_js
npm run build

or for comfortable local development

npm run watch

with auto build feature if any file is changed.

Py

cd sharefile_webui
python3 setup.py build

or local installation

cd sharefile_webui
python3 setup.py install

Tips and Tricks

Upload file from command line

It is possile to simply upload file by CURL command via route /api/upload/.
usage:

curl -X POST -H "Content-Type: multipart/form-data" -u "admin:pass" -F "file=@FILENAME" "http://localhost:5000/api/upload/DIRECTORY"

It is possible to upload file by CURL and share file automatically at ones via route /api/uploadandshare/
usage:

curl -X POST -H "Content-Type: multipart/form-data" -u "admin:pass" -F "file=@FILENAME" "http://localhost:5000/api/uploadandshare/DIRECTORY"

Screenshot

sharefile-webui screenshot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sharefile-webui-1.7.7.tar.gz (266.9 kB view details)

Uploaded Source

Built Distribution

sharefile_webui-1.7.7-py3-none-any.whl (281.8 kB view details)

Uploaded Python 3

File details

Details for the file sharefile-webui-1.7.7.tar.gz.

File metadata

  • Download URL: sharefile-webui-1.7.7.tar.gz
  • Upload date:
  • Size: 266.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for sharefile-webui-1.7.7.tar.gz
Algorithm Hash digest
SHA256 7db8d2c03349087303dd6ad5f3b52ce4302b8952721ee02777a144b77bd4e495
MD5 e0bd5303d75217456631952931c4e53f
BLAKE2b-256 c600d7f8ccd2a706c1828d890ff465a741ddd66f6909425156c4ab6809eda735

See more details on using hashes here.

File details

Details for the file sharefile_webui-1.7.7-py3-none-any.whl.

File metadata

  • Download URL: sharefile_webui-1.7.7-py3-none-any.whl
  • Upload date:
  • Size: 281.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for sharefile_webui-1.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 927eff598539047167e9037dbddc14aca0c9a9f584cba63061d0449698654fe8
MD5 83c25f4400aea74dbc412d7497c5140d
BLAKE2b-256 7ad8b0f4bd311a750715393bad6d2d157ba389b52f8327a1d30375241dd88a63

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page