AWS S3
Upload, download, delete, duplicate, move, and list files in AWS S3 buckets with multipart support
This node signs in with a credential: AWS Signature V4. See Connect a credential.
Actions
Steps this node can perform. Add one from Add a step, then pick the action.
Upload to S3
Upload a file from EFS (workflow reference file) to S3 bucket with optional metadata, tags, and encryption
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Source Type | Choice | Yes | Source of file to upload: inline filename or file upload Options: Inline, FileDefault: inline |
| Content | Text | Data content to write to S3 (text, JSON, CSV, etc.) | |
| File | File | File to upload to S3 (attach new file or reference file from previous node) | |
| Bucket Name | Text | Yes | Target S3 bucket name |
| Object Key | Text | Yes | S3 object key (path and filename in S3) |
| Content-Type | Text | Override MIME type (auto-detected from key extension if not set) | |
| Storage Class | Choice | S3 storage class (default: STANDARD) Options: Standard, Intelligent-Tiering, Standard-IA, One Zone-IA, Glacier Instant Retrieval, Glacier Flexible Retrieval, Glacier Deep Archive | |
| Server-Side Encryption | Choice | Encryption method for data at rest Options: None, AES256, AWS KMS | |
| KMS Key ID | Text | KMS key ID (required if using aws:kms encryption) | |
| Metadata | Object | Custom metadata key-value pairs | |
| Tags | Object | Object tags as key-value pairs | |
| ACL | Choice | Access Control List (default: private) Options: Private, Public Read, Public Read-Write, Authenticated Read, Bucket Owner Read, Bucket Owner Full Control |
Output
Later steps use this data by picking this step in the $ picker. For example, bucket is $.<step ID>.output.bucket.
{
"bucket": "string",
"etag": "string",
"key": "string",
"location": "string",
"serverSideEncryption": "string",
"size": 0,
"storageClass": "string",
"success": false,
"uploadedAt": "string",
"versionId": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
bucket | Text | |
etag | Text | |
key | Text | |
location | Text | |
serverSideEncryption | Text | |
size | Number | |
storageClass | Text | |
success | Yes / No | |
uploadedAt | Text | |
versionId | Text |
Download from S3
Download a file from S3 to EFS (becomes a reference file for subsequent nodes)
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Bucket Name | Text | Yes | Source S3 bucket name |
| Object Key | Text | Yes | S3 object key to download |
| Destination File Name | Text | File name in EFS (defaults to S3 object filename if not provided) | |
| Version ID | Text | Specific version to download (for versioned buckets) |
Output
Later steps use this data by picking this step in the $ picker. For example, bucket is $.<step ID>.output.bucket.
{
"bucket": "string",
"contentType": "string",
"destFileName": "string",
"downloadedAt": "string",
"etag": "string",
"key": "string",
"lastModified": "string",
"metadata": {},
"size": 0,
"success": false,
"versionId": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
bucket | Text | |
contentType | Text | |
destFileName | Text | |
downloadedAt | Text | |
etag | Text | |
key | Text | |
lastModified | Text | |
metadata | Object | |
size | Number | |
success | Yes / No | |
versionId | Text |
Delete from S3
Delete an object from S3 bucket (creates delete marker for versioned buckets)
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Bucket Name | Text | Yes | S3 bucket name |
| Object Key | Text | Yes | S3 object key to delete |
| Version ID | Text | Specific version to delete (for versioned buckets) |
Output
Later steps use this data by picking this step in the $ picker. For example, bucket is $.<step ID>.output.bucket.
{
"bucket": "string",
"deleteMarker": false,
"deletedAt": "string",
"key": "string",
"success": false,
"versionId": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
bucket | Text | |
deleteMarker | Yes / No | |
deletedAt | Text | |
key | Text | |
success | Yes / No | |
versionId | Text |
Duplicate in S3
Server-side copy of an object within or across S3 buckets (no data transfer through client)
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Same Bucket | Yes / No | Copy within the same bucket (true) or across different buckets (false) Default: true | |
| Bucket | Text | Yes | S3 bucket name (used for both source and destination when sameBucket=true) |
| Source Key | Text | Yes | Source S3 object key (path/filename) |
| Destination Bucket | Text | Destination S3 bucket name (only used when sameBucket=false) | |
| Destination Key | Text | Yes | Destination S3 object key (path/filename) |
| Storage Class | Choice | Storage class for destination object (optional - inherits from source if not set) Options: Standard, Intelligent-Tiering, Standard-IA, One Zone-IA, Glacier Instant Retrieval, Glacier Flexible Retrieval, Glacier Deep Archive |
Output
Later steps use this data by picking this step in the $ picker. For example, copiedAt is $.<step ID>.output.copiedAt.
{
"copiedAt": "string",
"destBucket": "string",
"destKey": "string",
"etag": "string",
"metadataCopied": false,
"serverSideEncryption": "string",
"sourceBucket": "string",
"sourceKey": "string",
"sourceVersionId": "string",
"storageClass": "string",
"success": false,
"versionId": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
copiedAt | Text | |
destBucket | Text | |
destKey | Text | |
etag | Text | |
metadataCopied | Yes / No | |
serverSideEncryption | Text | |
sourceBucket | Text | |
sourceKey | Text | |
sourceVersionId | Text | |
storageClass | Text | |
success | Yes / No | |
versionId | Text |
Move in S3
Move an object within or between S3 buckets (server-side copy + delete source). Simplified version always copies metadata from source.
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Same Bucket | Yes / No | Move within the same bucket (true) or between different buckets (false) Default: true | |
| Bucket | Text | Yes | S3 bucket name (used for both source and destination when sameBucket=true) |
| Source Key | Text | Yes | Source S3 object key |
| Destination Bucket | Text | Destination S3 bucket name (only used when sameBucket=false) | |
| Destination Key | Text | Yes | Destination S3 object key |
| Storage Class | Choice | Storage class for destination object Options: Standard, Intelligent-Tiering, Standard-IA, One Zone-IA, Glacier Instant Retrieval, Glacier Flexible Retrieval, Glacier Deep Archive |
Output
Later steps use this data by picking this step in the $ picker. For example, destBucket is $.<step ID>.output.destBucket.
{
"destBucket": "string",
"destKey": "string",
"etag": "string",
"movedAt": "string",
"sourceBucket": "string",
"sourceDeleteError": "string",
"sourceDeleted": false,
"sourceKey": "string",
"storageClass": "string",
"success": false,
"versionId": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
destBucket | Text | |
destKey | Text | |
etag | Text | |
movedAt | Text | |
sourceBucket | Text | |
sourceDeleteError | Text | |
sourceDeleted | Yes / No | |
sourceKey | Text | |
storageClass | Text | |
success | Yes / No | |
versionId | Text |
List Files in S3
List objects in an S3 bucket, optionally filtered by prefix. Returns one page of results with a continuation token for fetching the next page.
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Bucket Name | Text | Yes | S3 bucket to list |
| Prefix | Text | Filter keys by prefix (e.g. uploads/2024/) | |
| Recursive | Yes / No | List all keys recursively under prefix (true) or only immediate keys (false) Default: false | |
| Max Keys | Number | Number of items per page (1–1000, default 100) Default: 100 | |
| Continuation Token | Text | Token from a previous list result to fetch the next page |
Output
Later steps use this data by picking this step in the $ picker. For example, bucket is $.<step ID>.output.bucket.
{
"bucket": "string",
"count": 0,
"isTruncated": false,
"items": [
{
"etag": "string",
"key": "string",
"lastModified": "string",
"size": 0,
"storageClass": "STANDARD"
}
],
"nextContinuationToken": "string",
"prefix": "string",
"success": false
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
bucket | Text | |
count | Number | |
isTruncated | Yes / No | |
items[] | List | |
items[].etag | Text | Entity tag of the object |
items[].key | Text | Object key |
items[].lastModified | Text | Last modified time |
items[].size | Number | Object size in bytes |
items[].storageClass | Text | Storage class, e.g. STANDARD |
nextContinuationToken | Text | |
prefix | Text | |
success | Yes / No |