A fast, compact, cross-platform S3 desktop explorer
Project description
S3 Explorer
A fast, compact, cross-platform desktop application for browsing and downloading files from any S3-compatible storage service.
Built with Python, PySide6 (Qt6), and boto3.
Features
- Universal S3 Compatibility — Works with AWS S3, MinIO, Ceph, Wasabi, DigitalOcean Spaces, and any service that exposes an S3-compatible endpoint.
- AWS Profile Support — Automatically detects profiles from
~/.aws/credentialsand~/.aws/config. Supports key-based, SSO, and role-based authentication. - Bucket & Object Browsing — List buckets, navigate folders with double-click, go back with the back button.
- Multi-File Download — Select multiple files (Ctrl/Cmd+Click or Shift+Click) and download them all at once.
- Folder Download — Select one or more folders to recursively download their entire contents, preserving directory structure.
- Access Denied Handling — Clear error messages when permissions are insufficient. Partial failures during batch downloads are reported per-file.
- Non-Blocking I/O — All S3 operations run in background threads. The UI stays responsive.
- Modern Dark UI — Catppuccin Mocha themed interface with smooth styling across all platforms.
- Custom Endpoint & SSL Toggle — Connect to local or private S3 servers with or without SSL.
Installation
From PyPI
pip install s3-desktop-explorer
Then run:
s3-desktop-explorer
From Source
git clone <repo-url>
cd s3explorer
pip install -r requirements.txt
python main.py
Requirements
- Python 3.10+
- PySide6 >= 6.6.0
- boto3 >= 1.34.0
Usage
- Launch the application.
- Choose an AWS profile from the dropdown, or select "Manual" and enter your credentials.
- For non-AWS services, enter the endpoint URL (e.g.
http://localhost:9000for MinIO). - Toggle SSL off if your endpoint doesn't support it.
- Click Connect.
- Click a bucket on the left to browse its contents.
- Double-click a folder to enter it, use Back to go up.
- Select one or more files/folders and click Download to save them locally.
Project Structure
s3explorer/
├── main.py # Application entry point
├── app.py # Main window, UI, and event handling
├── s3client.py # S3 operations and AWS profile reader
├── requirements.txt # Python dependencies
├── setup.py # PyPI packaging config
└── README.md
Configuration
No configuration files are needed. The app reads standard AWS config locations:
| File | Purpose |
|---|---|
~/.aws/credentials |
Access keys per profile |
~/.aws/config |
Region, endpoint URL, and other settings per profile |
Profiles are merged from both files. If a profile defines keys in credentials and a region in config, both are picked up.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl/Cmd + Click |
Add item to selection |
Shift + Click |
Range select |
Double-click folder |
Navigate into folder |
Troubleshooting
| Problem | Solution |
|---|---|
| Empty error dialog | Upgrade to latest version — error formatting has been improved |
| Cannot connect to MinIO | Make sure to uncheck "Use SSL" if your MinIO instance runs on HTTP |
| Access Denied on list | Your credentials lack s3:ListBucket permission for that bucket |
| Access Denied on download | Your credentials lack s3:GetObject permission for that key |
| No profiles found | Ensure ~/.aws/credentials or ~/.aws/config exists and is readable |
License
MIT
Crafted with Kiro — the AI-powered IDE for developers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file s3_desktop_explorer-0.1.0.tar.gz.
File metadata
- Download URL: s3_desktop_explorer-0.1.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfb6d0896043d8fca5a3131004990892a473709ace4316e71e3423601c7ca889
|
|
| MD5 |
55d14471637cc6a73de6b8b579ca04e6
|
|
| BLAKE2b-256 |
d2610a4c408402bfb1ec4a9a0617cf9c2217f9e6ed45fcc278a1430f84fa3d3c
|
File details
Details for the file s3_desktop_explorer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: s3_desktop_explorer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f4ac09fc990401c3d9f61c8ec168c4be3a5a7e9e97f6aa115a78c24a15f0b24
|
|
| MD5 |
9139eb33e3d237a9825cf4c897fef59d
|
|
| BLAKE2b-256 |
5b5105915cda6987eb18214cd4d6b257fc6439357d3a4d09e2ed1836d419d67f
|