Universal S3 UI is a lightweight, cross-platform graphical user interface for managing S3-compatible object storage services, with a particular focus on non-AWS implementations. Built with Go and Fyne, this application provides a seamless experience across macOS, Windows, and Linux and is provided as a native app.
- Universal Compatibility: Works with any S3-compatible storage service (Minio, Ceph, etc.)
- Connection Manager: Save and manage multiple S3 service configurations
- Secure Connections: Support for both HTTP and HTTPS connections
- File Management:
- Browse objects in your bucket with size information
- Upload local files to your bucket
- Download selected files from your bucket to your local machine
- Delete objects
- Select files and generate temporary download links valid for one hour
- Refresh bucket contents
- Asynchronous Loading: Load objects without blocking the UI
- Search Functionality: Easily find objects with simple fulltext search
- Progress Tracking: Visual progress bar for long-running operations
- Pagination: Load objects in batches for improved performance
- Detailed Object Information: View object name, size, and last modified date
- Responsive UI: Resizable columns for better visibility of object details
- Connection Manager: Save and manage multiple S3 service configurations
- Drag-and-Drop Support: Drag multiple files from your local machine to upload to your bucket
- Sorting: Sort objects by name, size, or last modified date
You can download pre-built binaries for Linux, macOS, and Windows from the GitHub Releases page. This allows you to quickly get started with Universal S3 UI without needing to build from source. Simply download the appropriate binary for your operating system, extract it, and run the executable.
- Any S3-compatible storage service credentials
- For building from source: Go programming language
When you start the application, you can use the GUI to manage your connections:
-
Create a new connection by providing:
- Name: A unique name for your connection
- Endpoint: Your S3 service endpoint (e.g., "play.min.io")
- Access Key: Your S3 access key
- Secret Key: Your S3 secret key
- Bucket Name: The name of the bucket you want to access
- Prefix: (Optional) A prefix to filter objects in the bucket
- Region: (Optional) The region of your S3 service
- SSL: Toggle for HTTPS connection (recommended for production use)
-
Save the connection, which will be stored in a local configuration file. The location of this file depends on your operating system.
-
You can create and save multiple connections for different S3 services or buckets.
The configuration values can also be preset using CLI flags or environment variables. If provided, these will automatically create a special connection named "". The available options are:
- Endpoint:
--endpoint
orENDPOINT
- Access Key:
--accesskey
orACCESS_KEY
- Secret Key:
--secretkey
orSECRET_KEY
- Bucket Name:
--bucket
orBUCKET
- Prefix:
--prefix
orPREFIX
- Region:
--region
orREGION
- SSL:
--usessl
orUSE_SSL
- Launch the application
- Select a saved connection or create a new one
- Click "Connect" to establish the connection
- Use the main interface to:
- View objects in your bucket with detailed information
- Use the search bar to find specific objects
- Select one or multiple objects to download or delete files
- Use upload to add new local files to your bucket
- Select files and generate temporary download links
- Click "Exit" to close the application
Here's a visual walkthrough of the application:
The login screen where you enter your S3 service configuration details
Main interface showing the list of objects in your bucket
Select one or multiple objects by clicking the checkbox in the first column to download or delete
File upload interface for adding new objects to your bucket
Built using:
- Fyne - Cross-platform GUI toolkit for Go
- MinIO Go Client - S3-compatible storage client
Ensure you're using SSL (HTTPS) when connecting to production servers to protect your credentials and data in transit. All credentials are only used on your local machine to create the necessary connection. If you save connections using the connection manager, please notice that the secret key is saved in your local config file unencrypted. Leave the field empty before saving or don't save connections at all to prevent this.
MIT License