A modern, web-based file manager for S3-compatible storage systems. Built with Go backend and Vue.js frontend, featuring session-based authentication, real-time operations, and a beautiful user interface.
- Secure session management with HTTP-only cookies
- Connection testing before establishing sessions
- Automatic session cleanup (24-hour expiration)
- Support for custom S3 endpoints, regions, and credentials
- List Buckets: View all your S3 buckets with creation dates
- Create Buckets: Create new buckets with validation
- Delete Buckets: Safe deletion with confirmation dialogs
- Real-time Error Handling: User-friendly error messages with auto-dismiss
- Browse Objects: Navigate through your bucket contents
- Upload Files: Drag-and-drop or click-to-select file uploads
- Download Objects: Direct download with proper filenames
- View Objects: Preview files directly in the browser
- Delete Objects: Remove objects with confirmation
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Vue.js SPA β β Go Backend β β S3 Compatible β
β β β β β Storage β
β β’ Bucket List βββββΊβ β’ Session Mgmt βββββΊβ β
β β’ Object List β β β’ S3 API Proxy β β β’ MinIO β
β β’ File Upload β β β’ Error Handlingβ β β’ AWS S3 β
β β’ Modals β β β’ Static Files β β β’ Other S3 APIs β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Framework: Gorilla Mux for HTTP routing
- S3 SDK: AWS SDK for Go v2
- Session Management: UUID-based sessions with in-memory storage
- Logging: Structured logging with slog
- Documentation: Swagger API documentation
- Framework: Vue 3 with Composition API
- Routing: Vue Router 4
- Styling: Tailwind CSS
- Build Tool: Vite
- Language: TypeScript
brew tap cksidharthan/homebrew-tap
brew install s3-browser# Download the latest release for your platform
# Linux
wget https://github.com/cksidharthan/s3-browser/releases/latest/download/s3-browser-linux-amd64
chmod +x s3-browser-linux-amd64
./s3-browser-linux-amd64
# macOS
wget https://github.com/cksidharthan/s3-browser/releases/latest/download/s3-browser-darwin-amd64
chmod +x s3-browser-darwin-amd64
./s3-browser-darwin-amd64
# Windows
Download s3-browser-windows-amd64.exe and run it# Clone the repository
git clone https://github.com/cksidharthan/s3-browser.git
cd s3-browser
# Build the frontend
cd frontend
npm install
npm run build
cd ..
# Build the Go binary
go build -o s3-browser main.go
# Run the application
./s3-browser-
Start the application:
s3-browser ## optionally you can also specify the port as below s3-browser -port 9090The server will start on
http://localhost:8080 -
Access the web interface: Open your browser and navigate to
http://localhost:8080 -
Connect to your S3 storage:
- Enter your S3 endpoint (e.g.,
https://s3.amazonaws.comorhttp://localhost:9000for MinIO) - Provide your region (e.g.,
us-east-1,eu-west-1) - Enter your Access Key ID and Secret Access Key
- Choose whether to use SSL/TLS
- Click "Test Connection and Continue"
- Enter your S3 endpoint (e.g.,
-
Start managing your buckets and objects!
β― s3-browser -help
S3 Browser - A modern web-based file manager for S3-compatible storage
Usage:
-help
Show help message
-log-level string
Log level (debug, info, warn, error) (default "info")
-port string
Port to run the server on (default "8080")
Examples:
s3-browser
s3-browser -port 3000
s3-browser -port 8080 -log-level debug
s3-browser -help- On first visit, you'll see the connection form
- Fill in your S3 credentials and endpoint details
- The system will test the connection before proceeding
- Successful connections create a secure session
- View Buckets: See all buckets with creation dates
- Create Bucket: Click the "Create Bucket" button and enter a name
- Delete Bucket: Click the delete button (requires empty bucket)
- Access Bucket: Click "Open" to browse objects
- Upload Files: Click "Upload" button or drag files to the upload area
- View Objects: Click on object names to preview in browser
- Download Objects: Use the download button for each object
- Delete Objects: Click delete button with confirmation
- Navigation: Use breadcrumbs to navigate folder structures
- View Connection: Click "Connection Info" in the navbar
- Logout: Click "Logout" to end session and clear data
- Auto-Logout: Sessions expire after 24 hours
The application includes built-in Swagger documentation available at:
http://localhost:8080/api/swagger/
POST /api/connect- Establish S3 connection and create sessionGET /api/session/status- Check current session statusPOST /api/logout- Destroy current sessionGET /api/buckets- List all bucketsPUT /api/buckets/{name}- Create new bucketDELETE /api/buckets/{name}- Delete bucketGET /api/objects- List objects in bucketPOST /api/objects/{key}- Upload objectGET /api/objects/{key}- Download/view objectDELETE /api/objects/{key}- Delete object
This project is licensed under the MIT License - see the LICENSE file for details.
π’ Active Development - Regular updates and maintenance
Made with β€οΈ for the S3 community