UpDownApp
UpDownApp is a minimal HTTP file transfer server built using CherryPy. It allows users to upload and download files through a simple web interface. The application supports optional password protection, SSL for secure communication, and customizable data storage directories.
I implemented a first version of this application when I needed to transfer files from an old iPhone to a Linux desktop. Writing a minimal CherryPy application was for me the quickest thing, also not requiring to install dedicates services on the desktop or apps on the iPhone (which was almost impossible due to its age). I found myself using it from time to time, especially when I need to transfer lots of file or large files to/from a old/limited-access device which yet offers a browser.
Features
- File Upload: Users can upload multiple files to the server.
- File Download: Users can download individual files or multiple files as a ZIP archive.
- Password Protection: Optional password-based authentication to restrict access.
- SSL Support: Secure communication using HTTPS with provided SSL certificate and key.
- Customizable Data Directory: Specify the directory where files are stored.
Installation
You can install UpDownApp using pip:
pip install updownapp
Alternatively, you can install it directly from the source:
git clone https://github.com/aesuli/updownapp.git
cd updownapp
pip install .
Usage
Once installed, you can start the server using the updownapp command:
updownapp [OPTIONS]
Options:
--host: The host address to bind the server to (default: 0.0.0.0).
--port: The port number to listen on (default: 8080).
--data-dir: The directory to store and serve files (default: ./data).
--disable-upload: Disable file upload functionality.
--disable-download: Disable file download functionality.
--ssl-cert: Path to the SSL certificate file (for HTTPS).
--ssl-key: Path to the SSL private key file (for HTTPS).
--passwordfile: Path to a file containing the password for authentication.
Examples
Start the server with default settings:
updownapp
Start the server on a specific host and port:
updownapp --host 127.0.0.1 --port 8000
Enable password protection by specifying a password file:
updownapp --passwordfile /path/to/password.txt
The password file should contain a single line with the plaintext password.
Enable HTTPS by providing SSL certificate and key files:
updownapp --ssl-cert /path/to/cert.pem --ssl-key /path/to/key.pem
License
UpDownApp is released under the BSD 3-Clause License. See the LICENSE file for more details.
Acknowledgments
Built using the fantastic CherryPy - A minimalist Python web framework.
Release files for updownapp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| updownapp-0.1.0.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| updownapp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.3 kB
Release files / updownapp-0.1.0.tar.gz
| Download URL | updownapp-0.1.0.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f1bdfc76f7d928e15f8574d898b00724c0f2650d48a97223e25f2d799c53d2d4
|
|
BLAKE2b-256 checksum How to use checksums |
dc6f28e6a2c389b7d1e454fc0ba6466249363235685f0ece71135473a4c75f12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / updownapp-0.1.0-py3-none-any.whl
| Download URL | updownapp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fa49adb1eb2e949f9b54c7be4de9956be6f6cc9cbd32ed34fbe474ca0a35a7da
|
|
BLAKE2b-256 checksum How to use checksums |
65f827e78ca4ad0397d73349c971a5d9cdb9c2362486690811da83316c3a903d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|