npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-http-to-s3

v1.0.0

Published

n8n node that streams an HTTP response body directly into an S3 bucket (no binary data held in n8n)

Readme

n8n-nodes-http-to-s3

This is an n8n community node. It makes an HTTP request and streams the response body directly into an S3 bucket, like an HTTP Request node and an S3 upload node fused into one step.

n8n's binary data storage is the usual bottleneck for large downloads: in database mode a single file is capped at 1024 MiB, and in filesystem mode the whole file lands on a volume first. This node never puts the file into n8n at all. Bytes flow from the source server into an S3 multipart upload, and the node outputs only JSON metadata about the stored object.

n8n is a fair-code licensed workflow automation platform.

Installation Operations Credentials Usage Compatibility Resources Version history

Installation

Follow the installation guide in the n8n community nodes documentation and install n8n-nodes-http-to-s3.

This node depends on the AWS SDK, so it is not eligible for n8n Cloud verification and is meant for self-hosted n8n.

With the n8n Helm chart, list it under nodes.external.packages:

nodes:
  external:
    packages:
      - n8n-nodes-http-to-s3

Operations

The node has a single operation: request a URL and upload the response body to S3.

| Parameter | Description | | --- | --- | | Method | GET, POST, PUT, PATCH or DELETE. | | URL | The http or https URL to download from. | | Query Parameters | Name/value pairs appended to the URL. | | Headers | Name/value pairs sent with the request, for example Authorization. | | Body | Raw request body for POST, PUT, PATCH and DELETE. Set a Content-Type header yourself if the server needs one. | | Bucket Name | The destination S3 bucket. | | Object Key | The destination key. Empty uses the last path segment of the final URL, after redirects. |

Options:

| Option | Default | Description | | --- | --- | --- | | Concurrent Parts | 4 | Parts uploaded in parallel. | | Content Type | from server | Content-Type stored on the S3 object. | | Ignore SSL Issues | off | Download even if the server certificate cannot be verified (insecure). | | Max Redirects | 5 | Redirects to follow. | | Part Size (MB) | 64 | Size of each multipart chunk, at least 5. | | Storage Class | Standard | Standard, Standard-IA, Intelligent-Tiering or Glacier Instant Retrieval. | | Timeout (Ms) | 60000 | Maximum idle time (no data received) before the download is aborted. |

Output

One item per input item, with JSON only (no binary data):

{
  "bucket": "my-bucket",
  "key": "downloads/big-file.zip",
  "location": "https://my-bucket.s3.us-east-1.amazonaws.com/downloads/big-file.zip",
  "eTag": "\"3858f62230ac3c915f300c664312c11f-80\"",
  "bytes": 5368709120,
  "statusCode": 200,
  "contentType": "application/zip",
  "sourceUrl": "https://example.com/big-file.zip"
}

A non-2xx response fails the item with the status code and the start of the response body. With Continue On Fail enabled the item carries an error message instead.

Credentials

Create an S3 API credential:

| Field | Description | | --- | --- | | Use Default AWS Credentials | Use whatever the n8n process can already see (IAM role, IRSA, pod identity, AWS_* environment variables). The key fields below are hidden. | | Access Key ID, Secret Access Key | A key pair allowed to write to the bucket. | | Session Token | Only for temporary STS credentials. | | Region | Bucket region, for example eu-central-1. | | Custom Endpoint | For S3-compatible stores such as MinIO or Cloudflare R2. Leave empty for AWS. Path-style addressing is used when set. |

The credential test calls ListBuckets. A key that is not allowed to list buckets still passes, because uploading does not need that permission. The key needs s3:PutObject and s3:AbortMultipartUpload on the target keys.

Usage

  • Memory. Each in-flight part is buffered, so memory is roughly Part Size × Concurrent Parts. The defaults use about 256 MB. Lower either one on small pods.
  • Maximum file size. S3 allows 10,000 parts, so the largest file is Part Size × 10,000. The default 64 MB parts allow files up to about 625 GB.
  • Timeouts. The node keeps going as long as data keeps arriving. Check your workflow's execution timeout (EXECUTIONS_TIMEOUT) for very long transfers.
  • Failures. If the download or a part fails, the multipart upload is aborted so no orphaned parts are billed.
  • Not an AI tool. The node is deliberately not usable as an AI agent tool, because an agent should not be able to make your n8n instance download arbitrary URLs.

Compatibility

Built against n8n-workflow 2.x and tested with Node.js 20 and later. Requires a self-hosted n8n.

Resources

Version history

See CHANGELOG.md.