Skip to content

abdellatif72/File-Sharing-Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Cloud-Based File Sharing Web Application

Project Overview

This project is a functional file-sharing web application developed as part of a "Cloud Computing" final project to solve the problem of accessible, scalable, and secure document storage. By leveraging modern cloud infrastructure and a lightweight Python backend, the application enables users to seamlessly upload, categorize, and download files directly through their browser. The system was successfully deployed to AWS to guarantee high availability and secure access controls using IAM and S3.

Key Technical Steps

  • Backend Development: Built a lightweight, high-performance web server using Flask and Werkzeug to handle file upload routing, secure filename sanitization, and REST API endpoints.
  • AWS S3 Integration: Implemented the boto3 SDK to securely stream uploaded files into an Amazon S3 bucket, utilizing extension-to-prefix mapping to logically organize objects within the bucket.
  • Secure File Retrieval: Engineered a dynamic file-listing system that generates temporary, 1-hour expiring pre-signed S3 URLs for secure, authenticated file downloads without exposing the bucket to the public.
  • Dynamic Frontend UI: Designed a responsive single-page interface using HTML, CSS, and Vanilla JavaScript, implementing real-time DOM manipulation to dynamically filter and categorize over 20+ supported file extensions.
  • Cloud Deployment: Deployed the full application to an Amazon EC2 instance, utilizing AWS IAM roles to grant least-privilege secure access between the EC2 server and the S3 storage bucket.

Results

  • Delivered a robust file-sharing platform capable of handling real-time uploads and downloads for multiple file categories (Documents, Images, Audio, Video, Archives, Code).
  • Ensured 100% secure file access by implementing server-side pre-signed URL generation, eliminating the need for public S3 bucket policies.
  • Improved user experience by providing an intuitive, icon-driven interface (using FontAwesome) that categorizes and filters stored files asynchronously without requiring page reloads.

Technologies Used

  • Language: Python, JavaScript, HTML, CSS
  • Framework: Flask
  • Cloud Infrastructure: Amazon Web Services (EC2, S3, IAM)
  • Libraries: Boto3, Werkzeug
  • Frontend Tools: FontAwesome, Fetch API

About

A simple yet functional file-sharing web application developed as part of the "Cloud Computing" final project. The application enables users to upload and download files through a web interface. It was deployed to AWS using services such as Amazon EC2, S3, and IAM for secure storage and access control.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors