Simple file uploader/downloader server usable both with a web broaser and with simple command line tools such as curl.

Leo VIALLON-GALINIER 862a511b3a Correct script for multiple get 10 months ago
scripts 862a511b3a Correct script for multiple get 10 months ago
static 45942794c9 Minor change in layout and correct bug in up dl 10 months ago
templates 11406080ab Add script to header 10 months ago
.gitignore 8b129324e4 First commit 10 months ago
README.md 031f620486 Update README and minor updates 10 months ago
app.py 8b129324e4 First commit 10 months ago
db.py 8b129324e4 First commit 10 months ago
fs.py 5b1b8cb614 Correct permissions test 10 months ago
requirements.txt 8b129324e4 First commit 10 months ago
settings.example.cfg 8b129324e4 First commit 10 months ago
settings.example.py 8b129324e4 First commit 10 months ago

README.md

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