# `AgentSessionManager.Adapters.S3ArtifactStore`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.8.0/lib/agent_session_manager/adapters/s3_artifact_store.ex#L1)

An S3-backed implementation of the `ArtifactStore` port.

Stores artifacts as objects in an S3-compatible bucket.
Supports any S3-compatible storage (AWS S3, MinIO, DigitalOcean Spaces, etc).

## Configuration

    {:ok, store} = S3ArtifactStore.start_link(
      bucket: "my-artifacts-bucket",
      prefix: "asm/artifacts/",        # optional key prefix
      client: MyS3Client               # optional, defaults to ExAwsClient
    )

## Prerequisites

Requires `{:ex_aws, "~> 2.5"}` and `{:ex_aws_s3, "~> 2.5"}` when using
the default `ExAwsClient`. Configure ExAws with your AWS credentials.

## Key Structure

Objects are stored with the configured prefix:

    {prefix}{key}

For example, with `prefix: "asm/artifacts/"` and key `"patch-abc123"`:

    asm/artifacts/patch-abc123

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
