S3 Downloader is a Go application with a graphical user interface that allows users to download files from Amazon S3 buckets easily and efficiently.
- User-friendly GUI built with Fyne
- Concurrent downloads for improved performance
- Progress tracking for downloads
- AWS region and credentials configuration
- Optional prefix filtering for selective downloads
- Ability to stop ongoing downloads
- Go 1.16 or later
- AWS account and credentials (Access Key and Secret Key)
- Clone the repository:
git clone https://github.com/ninenine/s3downloader.git
cd s3downloader- Install the dependencies:
go mod tidy- Run the application:
go run cmd/main.go- Fill in the required fields in the GUI:
- Bucket Name: The name of your S3 bucket
- Prefix (optional): Folder or file prefix to filter downloads
- Download Path: Local directory to save downloaded files
- AWS Access Key and Secret Key (optional if using IAM roles)
- AWS Region: The region of your S3 bucket
-
Click the "Download" button to start downloading files.
-
Use the "Stop" button to cancel the download process if needed.
s3downloader/
├── cmd/
│ └── main.go
├── internal/
│ ├── aws/
│ │ └── downloader.go
│ ├── ui/
│ │ ├── ui.go
│ │ └── components.go
│ └── progress/
│ └── progress.go
├── pkg/
│ └── fileutils/
│ └── fileutils.go
└── go.mod
cmd/main.go: Entry point of the applicationinternal/aws/downloader.go: AWS S3 download logicinternal/ui/: UI-related codeinternal/progress/: Progress tracking structurespkg/fileutils/: Utility functions for file operations
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Fyne for the GUI toolkit
- AWS SDK for Go for S3 interactions
If you encounter any problems or have any questions, please open an issue in the GitHub repository.
