I built a Company-wide Self-hosted File Sharing Solution for Teams
Recently, I wanted to share high-resolution images and video files with my company’s graphic designer. She’s exceptional at her craft but isn’t familiar with AWS S3 or other complex cloud storage systems. I hate using Traditional solutions like email attachments, which are impractical due to file size limitations, and platforms like Google Drive can incur significant costs over time. Hence, we looked for multiple solutions that allow file-sharing mechanisms, but everything looked costlier or insecure. The only thing I like most about AWS is its S3 object storage service. However, sharing the S3 link for my video was not a solution because I wanted her to also access my bucket and share edited videos/images.
The Problem: Complexities in Enterprise File Sharing
This scenario isn’t unique. Many organizations face similar challenges:
- Design Teams struggle with sharing large files without technical barriers.
- Development Teams need a secure way to manage and share code artifacts.
- Cross-Department Collaboration often hits a roadblock due to varying technical expertise.
I decided to create a WebApp that can easily use S3 as object storage and allow my designer to share files and folders efficiently.
Simplifying File Sharing and Collaboration with S3 File Manager and Sevalla
In today’s fast-paced digital landscape, efficient file sharing and collaboration are more critical than ever. Teams are scattered across different locations, time zones, and sometimes even technical proficiencies. Traditional file-sharing platforms can be expensive, cumbersome, or lack the necessary features to bridge the gap between technical and non-technical users. Enter S3 File Manager — a modern web application designed to simplify file sharing and management using Amazon S3 storage. Coupled with Sevalla's very fast and secured deployment capabilities, this duo is set to revolutionize the way teams collaborate.
Try App here: https://s3-file-share-for-free-35n2u.kinsta.app/
The Solution: S3 File Manager — Helping Teams
S3 File Manager is a user-friendly web interface that makes AWS S3 storage accessible to everyone in your organization, regardless of their technical background.
Key Features
- Intuitive File and Folder Management: Navigate through files and folders with ease.
- Drag-and-Drop Uploads: Simply drag files into the browser to upload.
- Secure Sharing with Temporary URLs: Share files securely with links that expire.
- Real-Time Upload Progress: Monitor uploads as they happen.
- Responsive Design: Works seamlessly on both desktop and mobile devices.
- File Preview Support: Preview images, PDFs, and videos directly in the browser.
Real-World Use Cases
1. Design Team Collaboration
Problem Solved: Designers can now upload large PSD files, video renders, and high-resolution images without wrestling with AWS credentials or complicated interfaces.
Benefits:
- Ease of Use: A simple web interface that requires no training.
- Cost Savings: Eliminates the need for expensive storage solutions like Google Drive or Dropbox.
- Efficiency: Quick uploads and downloads streamline the workflow.
2. Development Team Efficiency
Problem Solved: Developers can manage different versions of builds, share code artifacts, and integrate with CI/CD pipelines effortlessly.
Benefits:
- Version Control: Maintain different versions of files without confusion.
- Access Control: Granular permissions to restrict or grant access as needed.
- API Compatibility: Seamless integration with existing AWS infrastructure.
3. Cross-Department Collaboration
- Marketing Teams: Share campaign assets without file size limitations.
- Sales Teams: Access product demos and presentations quickly.
- HR Departments: Distribute company-wide documents securely.
- Finance Teams: Share sensitive reports with appropriate security.
Overall Benefit: Enhances collaboration across departments by providing a centralized, easy-to-use file-sharing platform.
Cost Benefits: Why Amazon S3 Makes Sense
Budget considerations are paramount for any business. Amazon S3 offers a pay-as-you-go model, which can result in substantial cost savings compared to traditional storage solutions.
Cost Comparison:
- Amazon S3 Standard Storage: Approximately $0.023 per GB/month.
- Google Drive Business: $12/user/month with a 2TB limit.
- Dropbox Business: $20/user/month.
Example:
For a team of 10 people sharing 1TB of data:
- Amazon S3 Cost: ~$23/month.
- Google Drive Cost: $120/month.
- Dropbox Cost: $200/month.
Savings: Switching to S3 File Manager can save hundreds of dollars monthly.
Security Without Complexity
Security is non-negotiable, especially when dealing with sensitive company data. S3 File Manager leverages AWS’s robust security infrastructure while keeping things simple for the end-user.
Security Features
- Temporary URLs: Share files with expiring links to maintain control over access.
- Access Logging: Monitor who accesses files and when.
- Secure AWS Practices: Implements AWS IAM best practices for credential management.
- No AWS Knowledge Required: Users interact with a web interface without needing to understand AWS’s complexities.
Deployment Made Easy with Sevalla
Deploying web applications can be daunting, but Sevalla simplifies this process dramatically. It allows you to deploy applications without worrying about infrastructure, scaling, or complex configurations.
Why Choose Sevalla?
- Zero Complexity: Deploy your application in just a few clicks.
- Automatic Updates: Your app updates automatically with each Git push.
- Built-In Monitoring: Track performance metrics without additional tools.
- Cost-Effective: Eliminates the need for dedicated DevOps resources.
- Scalable: Easily handles growing demands as your team and data scale.
Deployment Steps
Prerequisites
- 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).
Step-by-Step Guide
Login to Sevalla Dashboard
- Visit app.sevalla.com and sign in.
Create a New Application
- Click on “New Application”.
- Select your Git repository and choose the branch to deploy.
- Enable Automatic Deployments for continuous integration.
Configure Environment Variables
- Add the following environment variables to connect your application with AWS:
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGION=your_aws_region
Deploy Your Application
- Click “Deploy” to start the deployment process.
- Sevalla will automatically handle:
- Dependency installation.
- Environment setup using Nix and Docker.
- Application startup.
Access Your Application
- Once deployed, Sevalla provides a unique URL.
- Access your application at link like mine. https://s3-file-share-for-free-35n2u.kinsta.app/.
Monitoring and Logs
- Application Logs: Access logs directly from the Sevalla dashboard.
- Performance Metrics: Monitor CPU, memory usage, and more.
- Alerts: Set up notifications for application status changes.
For detailed instructions, visit the Sevalla Documentation.
Getting Started with S3 File Manager
Prerequisites
- Python 3.10 or higher.
- An AWS Account with S3 access.
- Poetry for dependency management (optional).
Local Installation
1. Clone the Repository
git clone https://github.com/rohitg00/s3-file-share-for-free.git
cd s3-file-share-for-free
2. Running the Application
Using Poetry:
- Install dependencies:
poetry install
- Start the application:
poetry run python app.py
Using Pip:
- Install dependencies:
pip install -r requirements.txt
- Start the application:
python app.py
3. Access the Application
- Open your browser and navigate to
http://localhost:5001
.
4. Configure AWS Credentials Through the Web Interface
- Click the “Configure S3” button.
- Enter your AWS Access Key ID and Secret Access Key.
- Specify your S3 Bucket name and preferred AWS Region.
- Click “Save” to apply the settings.
The ROI: More Than Just Cost Savings
Implementing S3 File Manager isn’t just about saving money; it’s about optimizing your entire workflow.
Time Saved
- Reduced Training: No need to teach non-technical staff about AWS.
- Streamlined Processes: Faster file sharing and retrieval.
Improved Collaboration
- Self-Service File Management: Teams can manage their files without IT intervention.
- Real-Time Collaboration: Immediate access to files speeds up project timelines.
Enhanced Security
- Access Control: Restrict files to authorized personnel.
- Audit Trails: Keep track of all file activities for compliance.
Conclusion
S3 File Manager, combined with the effortless deployment provided by Sevalla, offers a transformative solution for businesses of all sizes. It bridges the gap between complex cloud storage systems and the need for straightforward, secure, and cost-effective file sharing.
Why Choose S3 File Manager?
- User-Friendly Interface: Designed with non-technical users in mind.
- Cost-Efficient: Significant savings over traditional storage solutions.
- Secure: Leverages AWS’s security features without the complexity.
- Scalable Deployment: Thanks to Sevalla, scaling up is hassle-free.
Ready to Elevate Your File Sharing Experience?
Don’t let outdated file-sharing methods slow down your team’s productivity. Get started with S3 File Manager today and revolutionize the way your organization collaborates.
Try S3 File Manager today: https://s3-file-share-for-free-35n2u.kinsta.app/
Visit the GitHub Repository to download the S3 File Manager.
For any questions or contributions, feel free to reach out or open an issue on GitHub.
Empower your team with seamless collaboration and efficient file management now!
Subscribe to my monthly newsletter here:
❤️ Follow Rohit Ghumare for more such awesome blogs.