Skip to main content
Read files from an S3 bucket. Each discovered object key becomes the stable identifier used in responses.

Discriminant

  • type: "s3"

Minimal config

Use a bucket and a few prefixes. We’ll expand prefixes recursively by default.
{
  "connector": {
    "type": "s3",
    "bucket_name": "my-docs-bucket",
    "prefixes": [
      "docs/",
      "videos/demo.mp4"
    ]
  }
}

Advanced config

When you need precise control, pass S3Prefix objects instead of plain strings. This lets you opt out of recursion per‑prefix.
{
  "connector": {
    "type": "s3",
    "bucket_name": "my-docs-bucket",
    "prefixes": [
      { "prefix": "docs/", "recursive": true },
      { "prefix": "docs/drafts/", "recursive": false },
      "videos/demo.mp4"
    ]
  }
}
Field reference
  • bucket_name (string): Source bucket name.
  • prefixes (Array<string | S3Prefix>): One or more prefixes or exact keys. An empty string reads the whole bucket.
  • S3Prefix.prefix (string): The prefix path to scan.
  • S3Prefix.recursive (boolean, default true): Whether to include subfolders under the prefix.
Identifier mapping Every S3 object key we ingest is echoed in the response so you can map results back to inputs.

Going deeper

  • Use S3Prefix objects when you need per‑prefix recursion control:
    • {"prefix": "docs/", "recursive": true} to scan folders - this is the default behaviour
    • {"prefix": "docs/drafts/", "recursive": false} to only read direct children
  • Mix strings and S3Prefix objects in the same prefixes array.