Skip to content
MoveWorkflows

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

  1. Export the workflows from Pipedream.
  2. Upload on /convert; the free report shows S3 steps, /tmp usage and SDK imports.
  3. 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