AWS S3
Description
Section titled “Description”This module allows performing operations with Amazon S3 using the official AWS SDK (@aws-sdk/client-s3). It supports the main operations: list buckets, list objects with prefix and pagination, download objects (as text or base64), upload objects (text, JSON, binary), delete objects, get metadata information without downloading (HEAD), copy objects between buckets and generate temporary pre-signed URLs for download.
Authentication is done via Access Key ID and Secret Access Key stored in the credentials. The operation is determined by the operation field or by the node name.
Configuration
Section titled “Configuration”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credentials | Yes | AWS S3 account |
| operation | select | Yes | Operation: listBuckets, listObjects, getObject, putObject, deleteObject, headObject, copyObject, getPresignedUrl |
| bucket | text | Conditional | S3 bucket name |
| key | text | Conditional | Object key/path (e.g.: folder/file.pdf) |
| prefix | text | No | Prefix to filter objects (e.g.: folder/) |
| maxKeys | number | No | Maximum objects to list (1-1000, default: 100) |
| returnAsBase64 | boolean | No | Return content as Base64 (for binaries) |
| bodyKey | text | No | Field in input data with the content to upload (default: fileContent) |
| contentType | select | No | MIME type: application/json, application/pdf, image/jpeg, text/csv, etc. |
| isBase64 | boolean | No | Indicate if the content is Base64 encoded |
| sourceKey | text | Conditional | Source object key (for copying) |
| destinationKey | text | Conditional | Destination key (for copying) |
| destinationBucket | text | No | Destination bucket (empty = same bucket) |
| expiresIn | select | No | Pre-signed URL expiration: 300 (5min) to 604800 (7 days), default: 3600 |
| outputKey | text | No | Key where to store the result |
Credentials
Section titled “Credentials”Service type: aws_s3. Stored in the servicecredentials table.
Configuration fields:
- accessKeyId: AWS Access Key ID
- secretAccessKey: AWS Secret Access Key
- region: AWS Region (default: us-east-1)
Output
Section titled “Output”{ "nextModule": "siguiente_modulo", "data": { "objects": [ { "key": "documentos/factura.pdf", "size": 125432, "lastModified": "2025-01-15T10:30:00.000Z", "etag": "\"abc123\"", "storageClass": "STANDARD" } ], "folders": ["documentos/", "imagenes/"], "isTruncated": false }, "_meta_": { "operation": "listObjects", "bucket": "mi-bucket", "service": "aws_s3" }}Usage Example
Section titled “Usage Example”Basic case - List objects
Section titled “Basic case - List objects”{ "credentials_id": 1, "operation": "listObjects", "bucket": "mi-bucket", "prefix": "documentos/", "maxKeys": 100}API Used
Section titled “API Used”- AWS S3 API via @aws-sdk/client-s3 and @aws-sdk/s3-request-presigner
- Documentation: https://docs.aws.amazon.com/AmazonS3/latest/API/
- The default delimiter is ”/” to separate objects into virtual folders
- Download returns UTF-8 text by default; enable returnAsBase64 for binary files
- Pre-signed URLs allow sharing temporary access to private objects
- Object copying can be done between different buckets
- Content to upload can come from the field specified in bodyKey or directly from config.body
- The
continueOnErrorparameter allows the workflow to continue even if the operation fails - Object listing supports pagination with nextContinuationToken
Related Nodes
Section titled “Related Nodes”- Manage S3 - Simplified file management in S3
- S3 Compatible - S3-compatible storage (Linode, DigitalOcean, MinIO, etc.)