A modern web application for managing files across multiple cloud storage providers with a clean and intuitive interface.
- π Intuitive file and folder management
- π Drag-and-drop file uploads
- π Secure file sharing with temporary URLs
- π± Responsive design for mobile and desktop
- π― Real-time upload progress tracking
- ποΈ Folder creation and hierarchical navigation
- π File search and filtering
- π Secure file handling with AWS S3
The Cloud Storage Manager supports multiple cloud storage providers, giving you the flexibility to choose the best solution for your needs. Whether you prioritize cost, performance, or specific features, you can seamlessly switch between providers while maintaining a consistent user experience.
-
Amazon S3 ($23/TB/month)
- Most reliable and feature-rich
- Multiple storage tiers
- Advanced analytics and automation
- Global infrastructure
-
Google Cloud Storage ($20/TB/month)
- Integrated with Google services
- Multiple storage classes
- Strong consistency
- 5GB free tier
-
Cloudflare R2 ($15/TB/month)
- Zero egress fees
- Global edge network
- S3-compatible API
- 10GB free tier
-
Wasabi ($6.99/TB/month)
- No egress fees
- S3-compatible API
- 11x9s durability
- Simple pricing
-
Backblaze B2 ($6/TB/month)
- Lowest cost
- Free egress with Cloudflare
- Simple pricing
- First 10GB free
-
DigitalOcean Spaces ($5/TB/month)
- Simple pricing structure
- Built-in CDN integration
- S3-compatible API
- 250GB included bandwidth
-
Hetzner Storage ($4/TB/month)
- European data centers
- S3-compatible API
- Automated snapshots
- Predictable pricing
- Python 3.10 or higher
- AWS Account with S3 access
- Poetry for dependency management
- Clone the repository:
git clone https://github.com/rohitg00/s3-file-share-for-free.git
cd s3-file-share-for-free
- Running Application using poetry:
- Install dependencies:
poetry install
- Start the application:
poetry run python app.py
- Running Application using PIP:
- Install dependencies:
pip install -r requirements.txt
- Start the application:
python app.py
- Open your browser and navigate to
http://localhost:5001
to access the application.
- Click "Configure Storage" button
- Select your preferred storage provider
- Enter provider-specific credentials:
- For AWS S3: Access Key ID, Secret Key, Region
- For Google Cloud: Project ID, Service Account JSON
- For Cloudflare R2: Account ID, Access Key, Secret Key
- For other providers: Follow provider-specific instructions
- Drag and drop files into the upload area
- Click "Upload" button to select files manually
- Monitor upload progress in real-time
- Create folders using the "New Folder" button
- Navigate through folders by clicking
- Delete files/folders using the delete icon
- Download files directly from the interface
- Generate shareable links with custom expiration
- Copy links to clipboard with one click
- Set access permissions for shared files
The application uses:
- Flask for the backend server
- AWS S3 for file storage
- Modern JavaScript for frontend interactivity
- Bootstrap for responsive design
- Backend: Python Flask
- Frontend: JavaScript, Tailwind CSS
- Storage: Amazon S3
- File Upload: Chunked upload for large files
- Preview Support: Images, PDFs, Videos
- Security: Server-side AWS credential management
- Secure file handling
- AWS IAM best practices
- Input validation and sanitization
- Temporary URL generation
- Access control implementation
- A Sevalla account (Sign up at sevalla.com)
- Your application code pushed to a Git repository
- AWS credentials (Access Key ID and Secret Access Key)
-
Login to Sevalla Dashboard
- Go to dashboard.sevalla.com
- Sign in with your credentials
-
Create New Application
- Click on "New Application"
- Select your Git repository
- Choose the branch you want to deploy
- β Automatic Deployments when commits are pushed to the repository
- Configure Environment Variables
Add the following environment variables:
AWS_ACCESS_KEY_ID=your_access_key_id AWS_SECRET_ACCESS_KEY=your_secret_access_key AWS_REGION=your_aws_region
- Deploy Application
- Click "Deploy" to start the deployment process
- Sevalla will automatically:
- Install dependencies from requirements.txt
- Use nix to install dependencies and create docker image
- Set up the Python environment
- Start your Flask application
- Access Your Application
- Once deployed, Sevalla will provide you with a URL
- Your application will be accessible at
https://your-app-name.sevalla.app
- Access application logs from the Sevalla dashboard
- Monitor application performance metrics
- Set up alerts for application status
For more detailed deployment instructions, visit Sevalla Documentation
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- AWS SDK for Python (Boto3)
- Flask web framework
- Bootstrap CSS framework
- Neon cloud icon design for favicon
For support, please open an issue in the GitHub repository or contact email here
Made with β€οΈ by Rohit Ghumare