Pipedream AWS S3 steps in n8n
Updated 2026-10-21 · 3 min read · n8n: AWS S3 (Native n8n node)
Pipedream's AWS app bundles many services; S3 is the one most workflows touch: upload a generated file, download an object for processing, react when a file lands in a bucket. n8n has a native AWS S3 node. It has no S3 trigger, so the event side needs a small AWS change.
The n8n AWS S3 node
n8n-nodes-base.awsS3:
| Resource | Operations |
|---|---|
| Bucket | Create, Delete, Get Many, Search |
| File | Copy, Delete, Download, Get Many, Upload |
| Folder | Create, Delete, Get Many |
There is no S3 trigger node. The nearest built-in trigger is AWS SNS Trigger.
What maps where
Pipedream (app aws) |
In n8n | Status |
|---|---|---|
| S3 - Upload Files, S3 - Upload Base64 As File | AWS S3 → File → Upload (binary input; convert base64 with a Convert to File node) | manual |
| S3 - Download File to /tmp | File → Download (binary on the item, not a file in /tmp) |
manual |
| List objects (code or action) | File → Get Many, or Bucket → Search | manual |
| S3 - Generate Presigned URL | Code node with the AWS SDK (self-hosted) or a Lambda | manual |
| New S3 File, New S3 Event, New Deleted S3 File | S3 event notification → SNS topic → AWS SNS Trigger, or EventBridge → API destination → n8n Webhook | manual, AWS setup |
Code step with @aws-sdk/client-s3 and this.aws.$auth.accessKeyId |
Code node; keys become AWS_ACCESSKEYID, AWS_SECRETACCESSKEY, package listed |
automatic, review |
AWS actions are not in the converter's automatic list; they come through as marked placeholders with the bucket, key and region. Code steps are converted, but on n8n Cloud the AWS SDK cannot be imported in a Code node, so those steps should be rewritten with the S3 node; the report flags each one.
Credentials
n8n's AWS docs describe two credentials:
- AWS (IAM) – access key ID and secret. With temporary credentials you also enter a session token, which n8n cannot renew.
- AWS (Assume Role) – role ARN, external ID and STS credentials; renews automatically. Better for long-running production.
- Inside AWS (Assume Role), self-hosted only: Use System Credentials takes the starting credentials from the instance environment for the AssumeRole call (you still enter a Role ARN). Needs
N8N_AWS_SYSTEM_CREDENTIALS_ACCESS_ENABLED=true; not available on n8n Cloud. - Custom endpoints (VPC endpoints, S3-compatible storage) can be set in the credential.
Scope the IAM policy to the buckets the workflows use (s3:GetObject, s3:PutObject, s3:ListBucket).
Typical migration: export report to S3
Pipedream: Schedule (daily) → Postgres Execute SQL Query → code step (CSV) → S3 Upload Base64 As File. n8n: Schedule Trigger → Postgres (converted automatically) → Convert to File (CSV) → AWS S3 → File → Upload. No npm package needed.
Typical migration: process new uploads
Pipedream: New S3 File → Download File to /tmp → OpenAI. n8n: add an S3 event notification on the bucket to an SNS topic → AWS SNS Trigger → AWS S3 → Download (key from the event) → next step.
Pitfalls
- Pagination. S3 returns at most 1,000 keys per list request; the rest come with a continuation token. Turn on Return All in Get Many for big prefixes.
- Region. The credential's region must match the bucket's, or calls fail with redirects or signature errors.
- Binary size. On self-hosted n8n, large files are safer with binary data stored on disk (
N8N_DEFAULT_BINARY_DATA_MODE=filesystem) instead of memory. - Event duplicates. S3 notifications can arrive more than once; dedupe on the object key and ETag.
How to move your AWS S3 workflows
- Export the workflows from Pipedream.
- Upload on /convert; the free report shows S3 steps,
/tmpusage and SDK imports. - Download the n8n JSON: 1 workflow is free; full export: $3 per workflow, $19 minimum — coming soon.
Guide: Pipedream to n8n; check SDK code in the code step checker. Related: Google Drive, PostgreSQL, OpenAI.
FAQ
- Does n8n have an S3 trigger?
- No. Replace Pipedream's New S3 File and New S3 Event sources with S3 event notifications sent to SNS (AWS SNS Trigger in n8n) or to a Lambda/EventBridge rule that calls an n8n Webhook.
- How do files move from S3 to the next step?
- AWS S3 → File → Download puts the object in the item's binary data. Pipedream's action wrote it to /tmp instead; code that reads /tmp needs a rewrite.
- Which credential should I use?
- AWS (IAM) with an access key, or AWS (Assume Role) with a role ARN, which renews itself. Temporary IAM credentials need a session token that n8n cannot renew.
- How do I create a presigned URL?
- The node has no presign operation. Use a Code node on self-hosted n8n with the AWS SDK allowed, or a small Lambda behind an HTTP Request.
Related
Sources
- https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awss3/
- https://docs.n8n.io/integrations/builtin/credentials/aws/
- https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.awssnstrigger/
- https://pipedream.com/apps/aws
- https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html