Skip to content

About

AWS Cloud File Sharing Project

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SnapFile - Automated File Sync to AWS S3

Untitled Diagram drawio

Overview

SnapFile is an automated file synchronization system that detects changes in a local folder and seamlessly uploads new or modified files to an AWS S3 bucket. It also provides a simple web interface hosted on AWS S3, where users can view and download uploaded files in real time.

Features

  • Automated File Uploads: Detects new or modified files in the designated folder and uploads them to an S3 bucket.
  • Hosted Web Interface: Displays uploaded files via an AWS S3-hosted website.
  • Task Scheduler Integration: Runs automatically on system startup using Windows Task Scheduler.
  • Real-Time File Listing: Webpage dynamically lists available files in the S3 bucket.

Technologies Used

  • Python (for file monitoring and uploading via boto3)
  • JavaScript (to fetch and display file listings from S3)
  • AWS S3 (for file storage and website hosting)
  • HTML & CSS (for the web interface)
  • Watchdog (Python library for monitoring file changes)

How It Works

  1. Monitor Folder Changes
    • The upload_monitor.py script runs in the background and listens for file changes in the SnapFile directory.
  2. Upload to S3
    • When a file is added or modified, the script uploads it to the configured AWS S3 bucket.
  3. Display on Webpage
    • The hosted web interface retrieves the file list from the S3 bucket and displays them for users to access and download.
  4. Task Scheduler Automation
    • The script is configured to start automatically on system boot using Windows Task Scheduler.

Setup Instructions

1. Clone the Repository

git clone https://github.com/yourusername/SnapFile.git
cd SnapFile

2. Configure AWS Credentials

Edit upload_monitor.py with your AWS S3 credentials and bucket name.

3. Install Dependencies

pip install boto3 watchdog

4. Start the Monitor Script

python upload_monitor.py

5. Deploy Web Interface

  1. Upload index.html, script.js, and style.css to your AWS S3 bucket.
  2. Enable static website hosting in the S3 settings.

6. Automate with Task Scheduler (Windows)

  1. Open Task Scheduler and create a new task.
  2. Set the trigger to start at login.
  3. Set the action to run python upload_monitor.py.

Screenshots

Screenshot 2025-02-03 134608 Screenshot 2025-02-03 134630 Screenshot 2025-02-03 134652 Screenshot 2025-02-03 134754 Screenshot 2025-02-03 134836 Screenshot 2025-02-03 134952 Screenshot 2025-02-03 135003 Screenshot 2025-02-03 135024 Screenshot 2025-02-03 135034 Screenshot 2025-02-03 135303

Future Enhancements

  • Implement user authentication for secure file access.
  • Add support for multiple folders and buckets.
  • Develop a desktop GUI for easier configuration.

Contributing

Pull requests are welcome! Feel free to open an issue if you find a bug or have a feature request.

License

MIT License. See LICENSE file for details.

About

AWS Cloud File Sharing Project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages