Welcome to MyGoShare, a powerful and efficient file-sharing and management system built with GoLang! This project is designed to provide secure file uploads, metadata storage, user authentication, file sharing via public links, caching using Redis, and optimized search for large datasets.
- 🔐 User Authentication with JWT
- 📤 Secure File Uploads
- 📝 File Metadata Storage in PostgreSQL
- 🔗 Public File Sharing
- ⚡ In-Memory Caching with Redis for Fast Metadata Access
- 🔍 File Search by Name, Date, and Type
- ⏱️ Hosted on AWS EC2 and uses a S3 bucket
Here’s a list of all the available API endpoints for MyGoShare:
-
Register:
- URL:
POST /register
- Description: Register a new user with email and password.
- URL:
-
Login:
- URL:
POST /login
- Description: Authenticate the user and return a JWT token.
- URL:
-
Upload File:
- URL:
POST /upload
- Description: Upload a file. Requires JWT authentication.
- Authorization: Bearer Token
- Body: Multipart form with a
file
field.
- URL:
-
Get Files:
- URL:
GET /files
- Description: Retrieve the list of files for the authenticated user.
- Authorization: Bearer Token
- URL:
-
Search Files:
- URL:
GET /search/files?name=&date=&file_type=
- Description: Search the user’s files by name, upload date, and file type.
- Authorization: Bearer Token
- URL: