Privacy-focused media processing with GPU acceleration and multi-cloud storage integration
Project description
Secure Media Processor
๐ Professional-grade media processing with military-grade encryption, GPU acceleration, and multi-cloud storage integration
Privacy-first โข GPU-accelerated โข Cloud-ready โข Production-tested
๐ Overview
Secure Media Processor is a production-ready, enterprise-grade solution for securely processing, encrypting, and storing media files across multiple cloud providers. Built with privacy and security as core principles, it offers seamless integration with AWS S3, Google Drive, and Dropbox, while maintaining complete local control over your data.
Why Choose Secure Media Processor?
- โ Zero-Trust Architecture: All encryption happens locally before cloud upload
- โ Plug-and-Play Cloud Connectors: Switch between S3, Google Drive, and Dropbox effortlessly
- โ Production-Ready: Modular design, comprehensive error handling, and extensive logging
- โ Performance-Optimized: GPU-accelerated processing for blazing-fast operations
- โ Developer-Friendly: Clean API, comprehensive documentation, and extensible architecture
โจ Key Features
๐ Security & Privacy
- Military-Grade Encryption: AES-256-GCM authenticated encryption
- Local Processing: All sensitive operations happen on your machine
- Secure Key Management: Protected key storage with restricted permissions
- Integrity Verification: SHA-256 checksums ensure data integrity
- Secure Deletion: Multi-pass overwrite before file removal
โ๏ธ Multi-Cloud Storage
- AWS S3: Full S3 integration with server-side encryption
- Google Drive: Native Google Drive API support
- Dropbox: Seamless Dropbox integration
- Unified Interface: Switch providers without changing your code
- Connector Manager: Manage multiple cloud connections simultaneously
โก High-Performance Processing
- GPU Acceleration: CUDA-powered image and video processing
- Batch Operations: Process multiple files efficiently
- Smart Fallback: Automatic CPU fallback when GPU unavailable
- Optimized Pipelines: Minimal overhead, maximum throughput
๐ ๏ธ Developer Experience
- Modular Architecture: Clean separation of concerns
- Extensible Design: Easy to add new cloud providers or features
- Comprehensive Logging: Track every operation for debugging and auditing
- Type Hints: Full type annotations for better IDE support
- Well-Documented: Inline documentation and usage examples
๐ Requirements
- Python: 3.8 or higher
- GPU (Optional): NVIDIA GPU with CUDA support for accelerated processing
- Cloud Accounts (Optional): AWS, Google Cloud, or Dropbox accounts for cloud storage
๐ Quick Start
Installation
- Clone the repository:
git clone https://github.com/Isaloum/Secure-Media-Processor.git
cd Secure-Media-Processor
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
# Optional: For GPU acceleration support (NVIDIA/AMD/Apple/Intel)
pip install -r requirements-gpu.txt
# Or install via: pip install -e .[gpu]
- Configure credentials:
cp .env.example .env
# Edit .env with your cloud storage credentials
Basic Usage
Encrypt and Upload to Cloud
# Encrypt a file
python main.py encrypt my-photo.jpg encrypted-photo.bin
# Upload to S3
python main.py upload encrypted-photo.bin --remote-key secure/photo.enc
Download and Decrypt
# Download from cloud
python main.py download secure/photo.enc downloaded.bin
# Decrypt the file
python main.py decrypt downloaded.bin recovered-photo.jpg
GPU-Accelerated Image Processing
# Resize image with GPU acceleration
python main.py resize photo.jpg resized.jpg --width 1920 --height 1080
# Apply filters
python main.py filter-image photo.jpg filtered.jpg --filter blur --intensity 1.5
System Information
# Check GPU availability and system info
python main.py info
๐ Documentation
- Getting Started Guide - Step-by-step tutorial for beginners
- Contributing Guidelines - How to contribute to this project
- Security Policy - Security best practices and reporting vulnerabilities
๐๏ธ Architecture
Project Structure
Secure-Media-Processor/
โโโ src/
โ โโโ connectors/ # Cloud storage connectors
โ โ โโโ base_connector.py # Abstract base class
โ โ โโโ s3_connector.py # AWS S3 implementation
โ โ โโโ google_drive_connector.py # Google Drive implementation
โ โ โโโ dropbox_connector.py # Dropbox implementation
โ โ โโโ connector_manager.py # Multi-connector management
โ โโโ encryption.py # Encryption/decryption logic
โ โโโ gpu_processor.py # GPU-accelerated media processing
โ โโโ cloud_storage.py # Legacy cloud storage (S3)
โ โโโ config.py # Configuration management
โ โโโ cli.py # Command-line interface
โโโ tests/ # Test suite
โโโ main.py # Application entry point
โโโ requirements.txt # Python dependencies
Cloud Connector Design
The modular connector architecture allows seamless integration with multiple cloud providers:
from src.connectors import ConnectorManager, S3Connector, DropboxConnector
# Initialize connector manager
manager = ConnectorManager()
# Add connectors
manager.add_connector('s3', S3Connector(
bucket_name='my-bucket',
region='us-east-1'
))
manager.add_connector('dropbox', DropboxConnector(
access_token='your-token'
))
# Connect all providers
manager.connect_all()
# Upload to active connector
manager.upload_file('file.txt', 'remote/file.txt')
# Upload to specific provider
manager.upload_file('file.txt', 'file.txt', connector_name='dropbox')
# Sync file across multiple clouds
manager.sync_file_across_connectors(
'important.txt',
source_connector='s3',
target_connectors=['dropbox', 'gdrive']
)
๐งช Testing & CI/CD
Test Suite
The project includes comprehensive automated tests for all cloud connectors with 66% overall code coverage:
# Run all cloud connector tests
pytest tests/test_dropbox_connector.py tests/test_s3_connector_new.py tests/test_google_drive_connector_new.py -v
# Run with coverage reporting
pytest tests/ --cov=src/connectors --cov-report=term-missing
Coverage Metrics:
- S3 Connector: 87%
- Google Drive Connector: 82%
- Dropbox Connector: 65%
- Overall: 66%
Testing Strategy
All connector tests use global mocking fixtures for consistent, isolated testing:
- Dropbox:
mock_dbx_globalfixture mocksdropbox.Dropboxclass - S3:
mock_s3_client_globalandmock_s3_resource_globalfixtures mockboto3.client()andboto3.resource() - Google Drive:
mock_gdrive_service_globalfixture mocksgoogleapiclient.discovery.build()
This approach ensures:
- No actual cloud API calls during testing
- Fast test execution (all 45 tests run in ~1 second)
- Predictable test behavior without external dependencies
- Easy debugging with controlled mock responses
Continuous Integration
Every push and pull request triggers automated testing via GitHub Actions:
Workflow: .github/workflows/python-tests.yml
Pipeline Steps:
- Environment Setup: Python 3.11, install dependencies
- Test Execution: Run all connector tests with verbose output
- Coverage Analysis: Generate coverage reports (XML + terminal)
- Coverage Upload: Publish to Codecov with
connector-testsflag
View CI Status: All workflow runs are visible in the Actions tab
Adding New Connector Tests
To add tests for a new connector:
- Create
tests/test_<connector>_connector.py - Add a global fixture using
autouse=Trueandscope="function" - Mock the SDK/API constructor using
monkeypatch.setattr() - Write tests using the global mock with
reset_mock()between tests - Update CI workflow to include your test file
Example template:
import pytest
from unittest.mock import MagicMock
@pytest.fixture(autouse=True)
def mock_sdk_global(monkeypatch):
"""Global mock for SDK client"""
mock = MagicMock()
monkeypatch.setattr('sdk_module.Client', lambda *args, **kwargs: mock)
yield mock
mock.reset_mock()
def test_upload(mock_sdk_global):
connector = MyConnector()
connector.upload_file('test.txt', 'remote.txt')
assert mock_sdk_global.upload.called
๐ Security Workflow
- Local Encryption: Files are encrypted on your machine using AES-256-GCM
- Checksum Generation: SHA-256 hash calculated for integrity verification
- Secure Upload: Encrypted data transmitted to cloud with TLS
- Server-Side Encryption: Additional encryption layer at cloud provider
- Integrity Verification: Checksum verified on download
- Secure Decryption: Files decrypted only on your local machine
๐บ๏ธ Roadmap
Current Version (v1.0)
- โ AES-256-GCM encryption
- โ Multi-cloud connectors (S3, Google Drive, Dropbox)
- โ GPU-accelerated image processing
- โ Comprehensive CLI interface
Upcoming Features
- ๐ฒ Video Processing: GPU-accelerated video encoding/transcoding
- ๐ฒ Azure Blob Storage: Azure connector implementation
- ๐ฒ End-to-End Encryption: Zero-knowledge cloud storage
- ๐ฒ Web Interface: Browser-based UI for easier management
- ๐ฒ Automated Backups: Scheduled backup across multiple clouds
- ๐ฒ File Versioning: Track and restore previous file versions
- ๐ฒ Compression: Intelligent compression before encryption
- ๐ฒ CI/CD Pipeline: Automated testing and deployment
- ๐ฒ Docker Support: Containerized deployment
- ๐ฒ API Server: RESTful API for programmatic access
๐ค Contributing
We welcome contributions! Whether you're fixing bugs, improving documentation, or adding new features, your help makes this project better.
See CONTRIBUTING.md for guidelines.
๐ Security
Security is our top priority. If you discover a security vulnerability, please see our Security Policy for responsible disclosure guidelines.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Built with โค๏ธ for privacy-conscious users
- Inspired by the need for secure, cross-platform media management
- Special thanks to all contributors and the open-source community
๐ Support & Contact
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Project Wiki
โญ If you find this project useful, please consider giving it a star! โญ
Secure Media Processor - Your privacy, your control, your cloud.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file secure_media_processor-1.0.1.tar.gz.
File metadata
- Download URL: secure_media_processor-1.0.1.tar.gz
- Upload date:
- Size: 83.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f7e97a4944c524ea996fc058ee6f9c2ec45421e73553a59e8183053e5fb360a
|
|
| MD5 |
a201bad005f9cafc8e71296230f9aeab
|
|
| BLAKE2b-256 |
eba22f6383442c5770d1998a2e006f8a5b4a81666c59cec5fff3b19b8bd0af90
|
File details
Details for the file secure_media_processor-1.0.1-py3-none-any.whl.
File metadata
- Download URL: secure_media_processor-1.0.1-py3-none-any.whl
- Upload date:
- Size: 43.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
703d935ff1db6757bc4c8bdd54ed2b889b00829ac0e221d4ff44e66fa492c1e3
|
|
| MD5 |
9f380997ca79cb7b16ece7a230999a75
|
|
| BLAKE2b-256 |
cde6e925679a7a05d800421c8d767cf5ed30a3469946c24c05269dfe26176097
|