---
name: s3
description: "AWS S3 / S3-compatible object storage connector — syncs objects to a local directory."
version: "0.1.0"
entry: ./driver.ts
fields:
  - key: auth
    label: "AWS profile name"
    required: false
    sensitive: true
  - key: options.bucket
    label: "S3 bucket name"
    required: true
    sensitive: false
  - key: options.prefix
    label: "Key prefix filter"
    required: false
    sensitive: false
  - key: options.region
    label: "AWS region"
    required: false
    sensitive: false
  - key: options.endpoint
    label: "Custom S3-compatible endpoint URL"
    required: false
    sensitive: false
keywords:
  - s3
  - aws
  - bucket
  - object-storage
  - minio
---

## S3 Connector

Downloads all objects from an S3 bucket (or prefix within a bucket) to a local
directory. Requires `@aws-sdk/client-s3` as an optional peer dependency.

### Configuration

```yaml
connectors:
  - id: assets
    driver: s3
    access: read-only
    auth: env:AWS_PROFILE
    mount:
      source: my-bucket
    options:
      bucket: my-bucket
      prefix: project/assets/
      region: eu-central-1
```

For S3-compatible endpoints (MinIO, DigitalOcean Spaces, etc.):

```yaml
connectors:
  - id: minio-data
    driver: s3
    access: read-only
    mount:
      source: data
    options:
      bucket: data
      endpoint: http://localhost:9000
      region: us-east-1
```

### Behavior

- **mount**: Lists all objects under the prefix and downloads them to `targetDir`.
- **unmount**: Destroys the S3 client.
- **sync**: Re-downloads all objects (full sync).
- **watch**: Not implemented (no filesystem watcher — uses base class no-op).
