A modern web application that allows secure image uploads and generates temporary URLs with customizable expiration times.
- 🖼️ Image upload - Support for JPEG, PNG, GIF, WebP, BMP and SVG
- ⏰ Customizable expiration - Define how long the image will be accessible
- 🔒 Secure URLs - Generate temporary AWS S3 presigned URLs
- 📏 Size validation - Maximum 5MB per image
- 🚀 Fast response - Efficient processing with AWS Lambda
- 🌐 CORS enabled - Compatible with any frontend
Frontend (Web App)
↓
API Gateway
↓
AWS Lambda (Validation + Upload)
↓
AWS S3 (Private Bucket)
↓
Presigned URL (Temporary Access)
- AWS Lambda - Serverless processing
- AWS S3 - Image storage
- AWS API Gateway - REST API
- Node.js - JavaScript runtime
- AWS SDK v3 - AWS services integration
- Next.js - React framework
- TypeScript - Static typing
- Tailwind CSS - Utility-first CSS
- ✅
image/jpeg
,image/jpg
- ✅
image/png
- ✅
image/gif
- ✅
image/webp
- ✅
image/bmp
- ✅
image/svg+xml
- 📏 Maximum size: 5MB
- 🕐 Minimum expiration: 5 minutes
- 🕐 Maximum expiration: 604800 seconds (7 days)
- 🔐 Private bucket - Only accessible via presigned URLs
- ⏰ Temporary URLs - Automatically expire
- 🛡️ Strict validation - Only valid images allowed
- 🚫 No public access - Non-predictable URLs
- Select image - Click on the drag & drop area
- Configure expiration - Choose desired time
- Upload - Click on "Upload Image"
- Get URL - Copy the generated URL
- Fork the project
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
This project is licensed under the MIT License. See LICENSE
for more details.
- Multiple images support
- Image preview before upload
- Automatic resizing
- Uploaded images gallery
- Manual deletion API
- Webhooks for notifications
⭐ If you liked this project, give it a star!