diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-sharefile-webui.spec | 417 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 419 insertions, 0 deletions
@@ -0,0 +1 @@ +/sharefile-webui-1.7.7.tar.gz diff --git a/python-sharefile-webui.spec b/python-sharefile-webui.spec new file mode 100644 index 0000000..99e557c --- /dev/null +++ b/python-sharefile-webui.spec @@ -0,0 +1,417 @@ +%global _empty_manifest_terminate_build 0 +Name: python-sharefile-webui +Version: 1.7.7 +Release: 1 +Summary: WEB APP for sharing files via URL links. +License: MIT +URL: https://gitlab.com/alda78/sharefile-webui +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c6/00/d7f8ccd2a706c1828d890ff465a741ddd66f6909425156c4ab6809eda735/sharefile-webui-1.7.7.tar.gz +BuildArch: noarch + +Requires: python3-flask +Requires: python3-flask-httpauth +Requires: python3-flask-restful +Requires: python3-markdown +Requires: python3-requests +Requires: python3-werkzeug + +%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 +```bash +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: +```bash +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 +```bash +pip3 install sharefile-webui +``` + +### systemd configuration +```bash +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 +```bash +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: +```bash +sudo apt update +sudo apt install nodejs npm +cd sharefile_webui_js +npm run build +``` +or for comfortable local development +```bash +npm run watch +``` +with auto build feature if any file is changed. +### Py +```bash +cd sharefile_webui +python3 setup.py build +``` +or local installation +```bash +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: +```bash +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: +```bash +curl -X POST -H "Content-Type: multipart/form-data" -u "admin:pass" -F "file=@FILENAME" "http://localhost:5000/api/uploadandshare/DIRECTORY" +``` + +## Screenshot + + + + + +%package -n python3-sharefile-webui +Summary: WEB APP for sharing files via URL links. +Provides: python-sharefile-webui +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-sharefile-webui +# 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 +```bash +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: +```bash +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 +```bash +pip3 install sharefile-webui +``` + +### systemd configuration +```bash +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 +```bash +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: +```bash +sudo apt update +sudo apt install nodejs npm +cd sharefile_webui_js +npm run build +``` +or for comfortable local development +```bash +npm run watch +``` +with auto build feature if any file is changed. +### Py +```bash +cd sharefile_webui +python3 setup.py build +``` +or local installation +```bash +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: +```bash +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: +```bash +curl -X POST -H "Content-Type: multipart/form-data" -u "admin:pass" -F "file=@FILENAME" "http://localhost:5000/api/uploadandshare/DIRECTORY" +``` + +## Screenshot + + + + + +%package help +Summary: Development documents and examples for sharefile-webui +Provides: python3-sharefile-webui-doc +%description help +# 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 +```bash +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: +```bash +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 +```bash +pip3 install sharefile-webui +``` + +### systemd configuration +```bash +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 +```bash +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: +```bash +sudo apt update +sudo apt install nodejs npm +cd sharefile_webui_js +npm run build +``` +or for comfortable local development +```bash +npm run watch +``` +with auto build feature if any file is changed. +### Py +```bash +cd sharefile_webui +python3 setup.py build +``` +or local installation +```bash +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: +```bash +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: +```bash +curl -X POST -H "Content-Type: multipart/form-data" -u "admin:pass" -F "file=@FILENAME" "http://localhost:5000/api/uploadandshare/DIRECTORY" +``` + +## Screenshot + + + + + +%prep +%autosetup -n sharefile-webui-1.7.7 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-sharefile-webui -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.7.7-1 +- Package Spec generated @@ -0,0 +1 @@ +e0bd5303d75217456631952931c4e53f sharefile-webui-1.7.7.tar.gz |