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