Skip to main content

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.

Platform Python License

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/credentials and ~/.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

  1. Launch the application.
  2. Choose an AWS profile from the dropdown, or select "Manual" and enter your credentials.
  3. For non-AWS services, enter the endpoint URL (e.g. http://localhost:9000 for MinIO).
  4. Toggle SSL off if your endpoint doesn't support it.
  5. Click Connect.
  6. Click a bucket on the left to browse its contents.
  7. Double-click a folder to enter it, use Back to go up.
  8. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s3_desktop_explorer-0.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

s3_desktop_explorer-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

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

Hashes for s3_desktop_explorer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dfb6d0896043d8fca5a3131004990892a473709ace4316e71e3423601c7ca889
MD5 55d14471637cc6a73de6b8b579ca04e6
BLAKE2b-256 d2610a4c408402bfb1ec4a9a0617cf9c2217f9e6ed45fcc278a1430f84fa3d3c

See more details on using hashes here.

File details

Details for the file s3_desktop_explorer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for s3_desktop_explorer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8f4ac09fc990401c3d9f61c8ec168c4be3a5a7e9e97f6aa115a78c24a15f0b24
MD5 9139eb33e3d237a9825cf4c897fef59d
BLAKE2b-256 5b5105915cda6987eb18214cd4d6b257fc6439357d3a4d09e2ed1836d419d67f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page