Metadata-Version: 2.4
Name: s3_browser
Version: 0.5.1
Summary: An interactive tool to browse s3 like a regular directory structure
Author-email: Rob Moore <giftiger.wunsch@gmail.com>
Project-URL: Repository, https://github.com/giftig/s3-browser/
Keywords: aws,s3,browser,cli,interactive,prompt,s3-browser
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet
Classifier: Topic :: Terminals
Classifier: Topic :: Utilities
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: boto3>=1.9.0
Requires-Dist: prompt-toolkit>=3.0.48
Requires-Dist: python-magic>=0.4.27
Dynamic: license-file

# S3 Browser

![Latest tag](https://img.shields.io/github/v/tag/giftig/s3-browser)
![Build status](https://github.com/giftig/s3-browser/actions/workflows/build.yml/badge.svg)
![MIT License](https://img.shields.io/github/license/giftig/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

Create a source distribution with setup.py and upload it to pypi with twine:

`make dist && make dist/release`

[prompt-toolkit]: https://python-prompt-toolkit.readthedocs.io/en/master/
[usage-1]: readme-resources/usage-1.png "Usage example"
