Author is Igor Okladnikov.
- Support Python 3.7+
- Use venv during the development
- Program must work both on Linux and Windows
- Specify directory to keep manage files via CLI arguments
- Cover functionality using
pytest
- Deploy via Docker image (for those who is familiar with Docker)
- Use
logging
module for logging
- Avoid usage of dangerous values like
../../../etc/passwd
- Support binary file content as well
- Read settings from CLI arguments
- Read settings from env vars
- Read settings from config file
- Specify web-server port via CLI arguments
- Work independently without WSGI
- Suit with RESTful API requirements
- Use asynchronous programming concept (aiohttp?)
- Use multithreading for downloading files
- Partial file download (http range)
- Protect files by cryptography tools
- Provide access to files via access policy
- Keep users in database
Connect to database and create database and user:
create database fileserver;
create user fsuser with encrypted password 'fspass';
grant all privileges on database fileserver to fsuser;
(or do it interactively via pgAdmin, for example)
Update config.ini
.