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.
- 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.
- 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)
- Monitor Folder Changes
- The
upload_monitor.pyscript runs in the background and listens for file changes in theSnapFiledirectory.
- The
- Upload to S3
- When a file is added or modified, the script uploads it to the configured AWS S3 bucket.
- Display on Webpage
- The hosted web interface retrieves the file list from the S3 bucket and displays them for users to access and download.
- Task Scheduler Automation
- The script is configured to start automatically on system boot using Windows Task Scheduler.
git clone https://github.com/yourusername/SnapFile.git
cd SnapFileEdit upload_monitor.py with your AWS S3 credentials and bucket name.
pip install boto3 watchdogpython upload_monitor.py- Upload
index.html,script.js, andstyle.cssto your AWS S3 bucket. - Enable static website hosting in the S3 settings.
- Open Task Scheduler and create a new task.
- Set the trigger to start at login.
- Set the action to run
python upload_monitor.py.
- Implement user authentication for secure file access.
- Add support for multiple folders and buckets.
- Develop a desktop GUI for easier configuration.
Pull requests are welcome! Feel free to open an issue if you find a bug or have a feature request.
MIT License. See LICENSE file for details.










