A secure file storage system with end-to-end encryption, automatic expiration, and secure file sharing capabilities.
- AES-256 Encryption 🔒
Protect files with military-grade encryption during transfer and storage - Auto-Delete After Download 🗑️
Files self-destruct after being downloaded (configurable) - Expiration Dates ⏳
Set files to auto-delete after 1-30 days - Secure Sharing 🔗
Generate protected download links with optional passwords - Parallel Uploads ⚡
Upload multiple files simultaneously (10 concurrent threads) - Progress Tracking 📊
Real-time upload speeds and ETA calculations - File Type Filtering 📁
Whitelist specific file extensions (.txt, .pdf, .jpg, etc.) - pip package manager
- Python 3.9+
- pip package manager
# Clone repository git clone https://github.com/Tux-MacG1v/SFS.git cd secure-file-storage # Install dependencies pip install -r requirements.txt
Create config.json
:
{ "FOLDER_PATH": "uploads", "EXPIRE_DAYS": 15, "DELETE_AFTER": true, "SECRET_KEY": "YourStrongPassword123", "ENCRYPT": true, "API_URL": "https://files.tuxmacg1v.com/api/v1/upload", "MAX_RETRIES": 3, "MAX_WORKERS": 10, "SSL_VERIFY": true, "ALLOWED_EXTENSIONS": [".txt", ".pdf", ".docx", ".jpg", ".png"] }
Parameter | Description | Default |
---|---|---|
FOLDER_PATH | Directory to monitor for files | uploads |
EXPIRE_DAYS | Days until file expiration | 15 |
DELETE_AFTER | Auto-delete after download | true |
SECRET_KEY | Encryption password (min 8 chars) | Required |
ENCRYPT | Enable file encryption | true |
API_URL | Upload endpoint URL | Required |
MAX_RETRIES | Max upload retry attempts | 3 |
MAX_WORKERS | Concurrent upload threads | 10 |
SSL_VERIFY | Enable SSL certificate verification | true |
ALLOWED_EXTENSIONS | Permitted file types | Required |
# Start the uploader python uploader.py # Sample output 2023-09-15 14:30:00,123 - INFO - Starting upload of 5 files (128.54 MB) 2023-09-15 14:30:15,456 - INFO - Uploaded secret_document.pdf (43.21 MB/s) 2023-09-15 14:30:20,789 - INFO - Generated link: https://files.tuxmacg1v.me/download/a1b2c3d4
Files will be:
- Encrypted (if enabled)
- Uploaded to secure storage
- Deleted from local system (if configured)
- Download links saved to
links.txt
POST https://files.tuxmacg1v.me/api/v1/upload
{ "file": "base64_encoded_data", "filename": "document.pdf", "encrypt": true, "secret_key": "YourPassword123", "expire_days": 15, "delete_after": true }
GET https://files.tuxmacg1v.me/api/v1/download/{file_id}?key=YourPassword123
GET/DELETE https://files.tuxmacg1v.me/api/v1/files/{file_id}
Connection Issues
# Check API endpoint curl -v https://files.tuxmacg1v.me/api/v1/health # Temporary disable SSL verification Set "SSL_VERIFY": false in config.json
Encryption Problems
# Verify secret key meets requirements - Minimum 8 characters - No special characters - Matching on upload/download
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open a Pull Request
MIT License - See LICENSE for details