docs(readme): add project README with setup, features, and usage
This commit is contained in:
76
README.md
Normal file
76
README.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Temp File Transfer Service
|
||||
|
||||
A Flask-based personal temporary file sharing service with a Web UI, API access, and SQLite-backed metadata.
|
||||
|
||||
What it does
|
||||
- Upload files via a Web UI or an API endpoint
|
||||
- Choose an expiry: 1 hour, 24 hours, or 7 days
|
||||
- Generate a share URL (UUID) for downloaded access
|
||||
- File data stored on disk; metadata stored in SQLite
|
||||
- Web-based download page and a simple API for programmatic uploads
|
||||
|
||||
Tech stack
|
||||
- Flask (Python)
|
||||
- SQLite (metadata)
|
||||
- Filesystem storage for actual file data
|
||||
|
||||
Local development setup
|
||||
1. Prerequisites
|
||||
- Python 3.8+ (the project currently uses Python 3.x in this environment)
|
||||
- pip
|
||||
|
||||
2. Install dependencies
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. Run the server
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
|
||||
4. Access
|
||||
- Web UI: http://localhost:5000
|
||||
- API: see /api/upload and /api/file endpoints
|
||||
|
||||
Project layout
|
||||
- app.py # Flask application
|
||||
- config.py # Configuration constants
|
||||
- database.py # SQLite helpers and data access
|
||||
- requirements.txt # Python dependencies
|
||||
- templates/ # Jinja templates (index.html, download.html)
|
||||
- upload_client.py # Simple API client example for testing
|
||||
- uploads/ # Storage for uploaded files (created at runtime)
|
||||
|
||||
Data model (SQLite)
|
||||
- Table: files
|
||||
- id TEXT PRIMARY KEY
|
||||
- filename TEXT
|
||||
- filepath TEXT
|
||||
- filesize INTEGER
|
||||
- expiry_hours INTEGER
|
||||
- created_at TIMESTAMP
|
||||
- expires_at TIMESTAMP
|
||||
|
||||
Expiry and cleanup
|
||||
- Expiry options are defined as 1h, 24h, 7d in config
|
||||
- A cleanup operation removes expired files from disk and deletes DB rows
|
||||
- Cleanup is invoked on access endpoints (and can be wired to a cron/daemon later)
|
||||
|
||||
Security notes
|
||||
- Do not commit secrets. Secrets should be provided via environment variables in production.
|
||||
- This repository currently avoids embedding credentials.
|
||||
|
||||
Next steps (optional)
|
||||
- Add authentication for admin/API usage
|
||||
- Add rate limiting and upload size limits per user
|
||||
- Add automated tests and CI integration
|
||||
|
||||
License
|
||||
- MIT or your preferred license (update as needed)
|
||||
|
||||
Contributing
|
||||
- Pull requests are welcome. Please follow the project style and ensure tests pass.
|
||||
|
||||
Contact
|
||||
- If you need to reach the maintainer, use your preferred channel.
|
||||
Reference in New Issue
Block a user