cloudflare-r2-s3

n8n community node for Cloudflare R2 bucket, folder, and object operations

Package Information

Released: 3 mo ago
Downloads: 24 weekly / 299 monthly
Latest Version: 0.1.1
Author: Chris-Terminator

Documentation

n8n-nodes-cloudflare-r2-s3

An n8n community node for Cloudflare R2. It mirrors the bucket, folder, and file operations exposed by n8n's built-in generic S3 node while using R2-compatible parameters and the AWS SDK for JavaScript v3.

What “v2” means for R2

Cloudflare R2 exposes an S3-compatible API; there is no blanket “R2 S3 API v2.” The relevant v2 operation is ListObjectsV2, which this node uses for object search/listing, folder listing, and recursive folder deletion. The implementation uses the current modular AWS SDK v3 (@aws-sdk/client-s3).

R2 deliberately does not implement several AWS S3 features and headers, including ACLs, requester-pays, AWS KMS server-side encryption, object locking, and object tagging. This node does not show controls that R2 would reject.

Primary references:

Operations

Resource Operations
Bucket Create, Delete, Get Many, Search Objects
Folder Create, Delete recursively, Get Many
File Copy, Delete, Download, Get Many, Upload

Folder operations use zero-byte object markers and / prefixes, matching the convention used by S3-compatible tools. Recursive deletion is paginated and sends DeleteObjects batches of at most 1,000 keys.

Credentials

Create an R2 API token in the Cloudflare dashboard and enter:

  • S3 Endpoint (for example, https://<ACCOUNT_ID>.r2.cloudflarestorage.com)
  • Access Key ID
  • Secret Access Key
  • Region (auto for Cloudflare R2)

Like n8n's built-in S3 credential, this credential does not perform an account-wide bucket-list test when saved. Bucket-scoped keys are validated naturally when the workflow runs an operation against an allowed bucket.

For jurisdiction-specific buckets, paste the corresponding endpoint supplied by Cloudflare. The endpoint includes the Cloudflare account ID. The standard endpoint format is:

https://<ACCOUNT_ID>.r2.cloudflarestorage.com

Build and verify

npm install
npm run build
npm pack --dry-run

Install in self-hosted n8n

Publish the package to npm, or build a tarball with npm pack, then follow n8n's community node installation flow. Restart n8n after installation. This package uses an external runtime dependency and is intended for self-hosted n8n; it is not marked as n8n Cloud-compatible.

To publish from the repository, sign in with npm login, then run:

npm publish

The prepublishOnly script automatically runs the production TypeScript build before npm publishes the package.

Discussion