> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tai42.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# storage-s3

> S3 storage backend for the TAI ecosystem — text, binary, and media content over an S3 bucket.

<Info>`Storage` plugin · listing `tai42/storage-s3`</Info>

## Install

```bash theme={null}
tai plugins install tai42-storage-s3
```

## Permissions

| Capability | Declared |
| ---------- | -------- |
| Network    | yes      |
| Subprocess | no       |
| Filesystem | no       |

## Provides

<h3 id="s3">
  s3
</h3>

`Storage` — Storage backend serving text, binary, and media content over an S3 bucket.

Backs stored content with any S3-compatible bucket, including MinIO. Select it in
the manifest:

```yaml manifest.yml theme={null}
storage_module: tai42_storage_s3
```

## Configuration

| Variable                                  | Default     | Effect                                                                                       |
| ----------------------------------------- | ----------- | -------------------------------------------------------------------------------------------- |
| `STORAGE_S3_BUCKET`                       | unset       | Target bucket. The first operation raises when it is unset.                                  |
| `STORAGE_S3_ENDPOINT`                     | unset (AWS) | Custom endpoint for MinIO or another S3-compatible service.                                  |
| `STORAGE_S3_ACCESS_KEY`                   | unset       | Access key id.                                                                               |
| `STORAGE_S3_SECRET_KEY`                   | unset       | Secret access key.                                                                           |
| `STORAGE_S3_REGION`                       | `us-east-1` | Region name.                                                                                 |
| `STORAGE_S3_SECURE`                       | `true`      | Use TLS, and pick the scheme for a schemeless endpoint.                                      |
| `STORAGE_S3_VERIFY_SSL`                   | `true`      | Verify the endpoint's certificate.                                                           |
| `STORAGE_S3_ADDRESSING_STYLE`             | `auto`      | `path`, `virtual`, or `auto`. MinIO usually needs `path`.                                    |
| `STORAGE_S3_CONNECT_TIMEOUT`              | `5`         | Connect timeout in seconds.                                                                  |
| `STORAGE_S3_READ_TIMEOUT`                 | `30`        | Read timeout in seconds.                                                                     |
| `STORAGE_S3_REQUEST_CHECKSUM_CALCULATION` | unset       | `when_supported` or `when_required`, for S3-compatible services that reject the AWS default. |

Leave the key pair unset to fall through to the AWS credential chain — an instance
profile, IRSA, or `~/.aws/credentials`.

## Bucket policy

The bucket policy needs `s3:GetObject`, `s3:PutObject`, `s3:DeleteObject`, and
`s3:ListBucket` on the bucket and its contents. The driver's `HeadObject` probes
fall under `s3:GetObject` and its multi-object delete under `s3:DeleteObject`; it
makes no other calls.

## Quirks

Text templates are stored with content type `application/jinja2`, so a `stat` on
one reports that rather than a `text/*` type.

## See also

* [Storage and resources](/concepts/storage-and-resources) — the ResourceManager contract this provider backs.
* [Manage stored content](/guides/manage-stored-content) — the day-to-day commands.
