# 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"
Raw data
{
"_id": null,
"home_page": null,
"name": "s3_browser",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "aws, s3, browser, cli, interactive, prompt, s3-browser",
"author": null,
"author_email": "Rob Moore <giftiger.wunsch@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/d4/46/8c1e2c55cfb07cd4720c5f1ae063867b8d1b24ef833c165f0eb95f0cbd55/s3_browser-0.5.2.tar.gz",
"platform": null,
"description": "# S3 Browser\n\n\n\n\n\nA small, interactive tool to browse s3 like a regular directory structure\n\nWritten in python.\n\n## Features\n * Autocompletion and command history, powered by [prompt toolkit][prompt-toolkit]\n * Familiar interface for unix users (`cd`, `ls`, `file`, `pwd`, etc.)\n * Bookmarking (`bookmark add`, `bookmark ls`...)\n * Inspect key metadata (`file`) or contents (`cat`)\n * Download or upload individual keys to/from local files (`put` or `get`)\n * Lazy-loading and caching of paths (no scanning entire buckets on start up)\n\n## Installation\n\n`pip install s3_browser`\n\nAnd then run with `s3-browser`.\n\n## Example usage\n\n![Usage example][usage-1]\n\n## Development\n\nYou'll need `uv` and `ruff` to work with this project.\n\n### Running tests\n\nThis project uses `make` for ease of use. You can run tests by simply running:\n\n```bash\nmake test\n```\n\nUse `make` to run the full build, including tests with `pytest` and formatting and\nlinting with `ruff`.\n\n### Testing against minio\n\nYou can test against [minio](https://github.com/minio/minio) by running `make bootstrap` to start\na minio container and create a test bucket. You can then connect to it with:\n\n```bash\nexport AWS_ACCESS_KEY_ID=minio\nexport AWS_SECRET_ACCESS_KEY=minio123\nuv run s3-browser --endpoint http://localhost:19000\n```\n\n## Releasing\n\nBump the version in `pyproject.toml` and push the corresponding tag, then release via github.\nThis will run the `publish` workflow.\n\n[prompt-toolkit]: https://python-prompt-toolkit.readthedocs.io/en/master/\n[usage-1]: readme-resources/usage-1.png \"Usage example\"\n",
"bugtrack_url": null,
"license": null,
"summary": "An interactive tool to browse s3 like a regular directory structure",
"version": "0.5.2",
"project_urls": {
"Repository": "https://github.com/giftig/s3-browser/"
},
"split_keywords": [
"aws",
" s3",
" browser",
" cli",
" interactive",
" prompt",
" s3-browser"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "43e50ac6ee1e5724f1b27bc0020d0fd2f0063b58eae9fc0a5aa415c339d8b157",
"md5": "aaf43a76ed1cb64afc91e368d80aae4f",
"sha256": "6b967991c0ed801cfc3a63fa1f0abd989c0869de78d6de627d9fe826415689ad"
},
"downloads": -1,
"filename": "s3_browser-0.5.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aaf43a76ed1cb64afc91e368d80aae4f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 20466,
"upload_time": "2025-08-22T16:35:05",
"upload_time_iso_8601": "2025-08-22T16:35:05.959354Z",
"url": "https://files.pythonhosted.org/packages/43/e5/0ac6ee1e5724f1b27bc0020d0fd2f0063b58eae9fc0a5aa415c339d8b157/s3_browser-0.5.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d4468c1e2c55cfb07cd4720c5f1ae063867b8d1b24ef833c165f0eb95f0cbd55",
"md5": "1f94dab958d6ee2f2a1109b3419aebe7",
"sha256": "f037b1bef5ff3e458a87ffec0d1687bfccc7f5754fea5bd26396e7a969f52893"
},
"downloads": -1,
"filename": "s3_browser-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "1f94dab958d6ee2f2a1109b3419aebe7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 19134,
"upload_time": "2025-08-22T16:35:06",
"upload_time_iso_8601": "2025-08-22T16:35:06.808607Z",
"url": "https://files.pythonhosted.org/packages/d4/46/8c1e2c55cfb07cd4720c5f1ae063867b8d1b24ef833c165f0eb95f0cbd55/s3_browser-0.5.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-22 16:35:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "giftig",
"github_project": "s3-browser",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "s3_browser"
}