micro-file-server

The micro autoindex and file hosting server with one Flask framework dependence, with ability to upload files.


License
GPL-3.0
Install
pip install micro-file-server==0.1

Documentation

Table of Contents

  1. Description
  2. Features:
  3. Dependencies
  4. Usage
  5. Screenshot

Description

The micro autoindex and file hosting server with one Flask framework dependence. HTTP server that allow to download and upload files.

Features:

Allow to transfer files between systems easily and safely.

  • ftp-like design
  • ability to uplaod file
  • protection from folder escaping and injecting
  • size calculation
  • configuration with enironmental variables
  • optional basic file type recognition: text, image, audio, video
  • optional ability to prevent downloading of small files to use browser as a text reader.

Dependencies

Python version >= 3.10

Flask >= 2.3.2

Lower version may work as well.

Usage

export FLASK_RUN_HOST=0.0.0.0 FLASK_RUN_PORT=8080
export FLASK_BASE_DIR='/home/user'
python -m micro_file_server --host=0.0.0.0
# or
python micro_file_server/__main__.py

Here is defaults, that you can change:

export FLASK_FILENAME_MAX_LENGTH=40
export FLASK_MIMETYPE_RECOGNITION=True
export FLASK_SMALL_TEXT_DO_NOT_DOWNLOAD=True
export FLASK_SMALL_TEXT_ENCODING="utf-8"
export FLASK_FLASK_UPLOADING_ENABLED=True

Built-in web server is secure enough, but to execute with pip install gunicorn

gunicorn micro_file_server.__main__:app

Screenshot

Keywords

Filesharing, fileserver, httpserver, microhttp.