A modern, user-friendly web application for browsing, previewing, and downloading files from public Amazon S3 buckets and S3-compatible storage services.
- Browse & Navigate - Easily explore S3 buckets with folder navigation and breadcrumbs
- File Preview - Built-in viewers for multiple file formats:
- Text files (TXT, JSON, XML, HTML, CSS, JS, Python)
- Markdown with syntax highlighting
- Images (JPG, PNG, GIF, TIFF, BMP, SVG)
- Documents (DOCX, XLSX)
- CSV with tabular view
- Batch Download - Generate AWS CLI commands to download entire directories
- Custom Endpoints - Compatible with any S3-compatible storage service
- Public Access Only - Designed for no-auth access to public buckets
- Responsive Design - Fully responsive UI with Tailwind CSS
- Docker Ready - Easy deployment with Docker and Docker Compose
- Frontend: React.js, Tailwind CSS, Axios
- Backend: Flask (Python), Boto3
- Containerization: Docker & Docker Compose
- File Processing: Pandas, PIL, python-docx, openpyxl
- Docker and Docker Compose
- Or: Node.js 16+ and Python 3.9+
# Clone the repository
git clone https://github.com/digin1/s3-bucket-viewer.git
cd s3-bucket-viewer
# Start the application
docker-compose up
The application will be available at http://localhost:8080
cd backend
pip install -r requirements.txt
python app.py
cd frontend
npm install --legacy-peer-deps
npm start
Configure the application through the UI:
- Click the "Settings" button in the top-right corner
- Enter your S3 endpoint URL (default: https://s3.amazonaws.com)
- Enter your bucket name
- Click "Connect to Bucket"
Share specific bucket views with URL parameters:
endpoint
- S3 endpoint URLbucket
- Bucket namepath
- Directory path within the bucket
Example:
http://localhost:8080?endpoint=https://s3.amazonaws.com&bucket=my-public-bucket&path=images/
├── backend/ # Flask API
│ ├── app.py # Main API application
│ ├── utils/ # Helper utilities
│ │ └── file_handlers.py # File type processing
│ ├── requirements.txt # Python dependencies
│ └── Dockerfile # Backend container
├── frontend/ # React application
│ ├── src/ # Source code
│ │ ├── components/ # UI components
│ │ │ ├── FileTypeHandlers/ # File type viewers
│ │ │ └── ...
│ │ ├── App.js # Main application
│ │ └── ...
│ ├── public/ # Static assets
│ ├── package.json # Node dependencies
│ └── Dockerfile # Frontend container
└── docker-compose.yml # Container orchestration
MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
This application is designed for public S3 buckets only. It uses the --no-sign-request
equivalent in boto3 and does not support authentication. For private buckets, consider using the official AWS Console or AWS CLI.
Made with ❤️ by [Digin Dominic]