https://github.com/giftig/s3-browser
An interactive tool to browse s3 like a regular directory structure
https://github.com/giftig/s3-browser
aws browser cli interactive prompt python s3 s3-browser
Last synced: 5 months ago
JSON representation
An interactive tool to browse s3 like a regular directory structure
- Host: GitHub
- URL: https://github.com/giftig/s3-browser
- Owner: giftig
- License: mit
- Created: 2019-02-08T23:10:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-12-12T11:33:12.000Z (7 months ago)
- Last Synced: 2025-12-14T01:27:03.839Z (6 months ago)
- Topics: aws, browser, cli, interactive, prompt, python, s3, s3-browser
- Language: Python
- Size: 457 KB
- Stars: 16
- Watchers: 1
- Forks: 6
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# S3 Browser



A small, interactive tool to browse s3 like a regular directory structure
Written in python.
## Features
* Autocompletion and command history, powered by [prompt toolkit][prompt-toolkit]
* Familiar interface for unix users (`cd`, `ls`, `file`, `pwd`, etc.)
* Bookmarking (`bookmark add`, `bookmark ls`...)
* Inspect key metadata (`file`) or contents (`cat`)
* Download or upload individual keys to/from local files (`put` or `get`)
* Lazy-loading and caching of paths (no scanning entire buckets on start up)
## Installation
`pip install s3_browser`
And then run with `s3-browser`.
## Example usage
![Usage example][usage-1]
## Development
You'll need `uv` and `ruff` to work with this project.
### Running tests
This project uses `make` for ease of use. You can run tests by simply running:
```bash
make test
```
Use `make` to run the full build, including tests with `pytest` and formatting and
linting with `ruff`.
### Testing against minio
You can test against [minio](https://github.com/minio/minio) by running `make bootstrap` to start
a minio container and create a test bucket. You can then connect to it with:
```bash
export AWS_ACCESS_KEY_ID=minio
export AWS_SECRET_ACCESS_KEY=minio123
uv run s3-browser --endpoint http://localhost:19000
```
## Releasing
Bump the version in `pyproject.toml` and push the corresponding tag, then release via github.
This will run the `publish` workflow.
[prompt-toolkit]: https://python-prompt-toolkit.readthedocs.io/en/master/
[usage-1]: readme-resources/usage-1.png "Usage example"