Amazon S3
Amazon S3 cloud storage — upload, download, and manage objects in S3 buckets for B2B file exchange.
Overview
Section titled “Overview”| Property | Value |
|---|---|
| Type | http |
| Authentication | api_key |
| Category | Generic |
Configuration
Section titled “Configuration”| Field | Type | Required | Description |
|---|---|---|---|
access_key_id | string | Yes | AWS access key ID |
secret_access_key | string | Yes | AWS secret access key |
region | string | Yes | AWS region (e.g., us-east-1) |
bucket | string | Yes | S3 bucket name |
Available actions
Section titled “Available actions”The Amazon S3 connector does not ship with pre-defined action slugs. Instead, fyrn’s AI generates the appropriate S3 API calls based on your flow description. Common operations include:
- PutObject — Upload a file or data to an S3 bucket with a specified key.
- GetObject — Download an object from S3 by key.
- ListObjects — List objects in a bucket, optionally filtered by prefix.
- DeleteObject — Delete an object from S3 by key.
- CopyObject — Copy an object between keys or buckets.
- HeadObject — Check if an object exists and retrieve its metadata.
When you describe a flow that involves S3, fyrn generates the correct API calls with proper AWS Signature V4 authentication handled automatically via the configured credentials.
Example flow
Section titled “Example flow”flow: sftp-to-s3-with-notificationversion: 1description: Download a file from partner SFTP, upload to S3 bucket, and notify via Slack
source: connector: sftp-partner trigger: schedule cron: "0 */2 * * *"
steps: - name: list-new-files target: sftp-partner action: list-directory mapping: remotePath: /outbound/invoices store_as: file_list
- name: download-and-upload target: sftp-partner action: download-file for_each: file_list | filter(item.extension == "csv") mapping: remotePath: /outbound/invoices/{{ item.name }} store_as: downloaded_files
- name: upload-to-s3 target: amazon-s3-archive action: put-object for_each: downloaded_files mapping: key: "invoices/{{ now | date('YYYY/MM') }}/{{ item.filename }}" body: item.content content_type: text/csv
- name: notify-team target: slack-internal action: send-message mapping: channel: "#file-processing" text: "Uploaded {{ downloaded_files | length }} invoice file(s) from partner SFTP to S3."
on_error: retry: 3x exponential(30s) then: dead-letter