Simple file uploader/downloader server usable both with a web broaser and with simple command line tools such as curl.
Go to file
2020-11-12 13:57:00 +01:00
scripts Correct script for multiple get 2020-11-12 13:57:00 +01:00
static Minor change in layout and correct bug in up dl 2020-11-05 18:39:11 +01:00
templates Add script to header 2020-11-07 18:56:48 +01:00
.gitignore First commit 2020-11-04 18:59:18 +01:00
app.py First commit 2020-11-04 18:59:18 +01:00
db.py First commit 2020-11-04 18:59:18 +01:00
fs.py Correct permissions test 2020-11-07 23:36:42 +01:00
README.md Update README and minor updates 2020-11-05 15:31:31 +01:00
requirements.txt First commit 2020-11-04 18:59:18 +01:00
settings.example.cfg First commit 2020-11-04 18:59:18 +01:00
settings.example.py First commit 2020-11-04 18:59:18 +01:00

SFS - Simple file system

Simple file server (web-based) to be used easily with curl. Written in python with framework flask. By default it used a simple SQLite database, but this can be adapted to your needs by editing config files.

Scripts to use with bash and curl are available in the scripts folder. You can set your default server, username and password in the header of the script.

This repository is licensed under GPL v3.

Installation

  1. Create a virtual environment venv (python3 -m venv venv)
  2. Activate (. venv/bin/activate)
  3. Install prerequisite python packages (pip install -r requirements.txt)
  4. You will have to create a folder to store uploaded files (default is ./data)
  5. Copy files settings.example.cfg and settings.example.py to settings.cfg and settings.py and adjust parameters
  6. You can start the test server with python fs.py

Configuration an deployment

For deployment, see Flask documentation.

Configuration of uploading server and limitation of file size, as well as listening url for web server is configured in settings.py. Configuration of database is done in settings.cfg (use of SQLAlchemy, see corresponding documentation for advanced parameterizations).

Principe

  • fs.py is the core file
  • db.py defines the database structure
  • templates folder contains all web views to be rendered with Jinja2
  • static folder contains scripts, css and images

If at running time, there is no user in database, a first user is created with admin rights. The login is admin and password is admin. You have to change it before deployment, of course !

Licence

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/

Copyright (C) 2020 L. Viallon-Galinier