When I first started building cloud projects, I assumed file uploads worked like this:
π User Uploads File
β¬οΈ
π₯οΈ Server Stores File on Its Disk
Simple, right?
But while building RIA Vault, a cloud document management dashboard, I learned that modern cloud applications often work very differently.
Instead of storing files on the server itself, my architecture looks like this:
π User
β¬οΈ
π Frontend (Vercel)
β¬οΈ
βοΈ Flask Backend (Render)
β¬οΈ
βοΈ AWS S3
So where does the file actually live?
π Not on my server.
π Not on Render.
π Inside Amazon S3.
What happens when a user uploads a file?
1οΈβ£ The user selects a file from the dashboard.
2οΈβ£ The frontend sends the file to my Flask backend using the Fetch API.
3οΈβ£ The backend receives the file and uses AWS Boto3 SDK.
4οΈβ£ Boto3 calls Amazon S3's upload service.
5οΈβ£ S3 stores the file and returns a success response.
6οΈβ£ The dashboard instantly updates to show the uploaded file.
Why not store files on the server?
Imagine 10,000 users uploading documents.
If everything is stored directly on the server:
β Storage fills up quickly
β Scaling becomes difficult
β Server crashes can affect files
β Managing backups becomes a headache
Using Amazon S3 solves many of these problems:
β
Highly scalable storage
β
Designed for massive amounts of data
β
Better reliability and durability
β
Pay only for what you use
AWS Services I Used
πΉ Amazon S3 β Cloud object storage
πΉ AWS Boto3 SDK β Python SDK to interact with AWS services
Key methods used:
s3_client.upload_fileobj()
s3_client.list_objects_v2()
s3_client.delete_object()
These three methods powered the core functionality of my project:
π€ Upload Files
π View Files
ποΈ Delete Files
My Biggest Learning
Before this project, I thought cloud storage was just "a folder on the internet."
After building with AWS S3, I realized modern applications separate:
π₯οΈ Compute Layer β Handles requests
βοΈ Storage Layer β Stores files
This separation makes applications easier to scale, maintain, and deploy.
Building projects teaches concepts that documentation alone cannot.
What's one AWS service that completely changed how you think about cloud architecture?
Top comments (0)