Docs
backend/storage

Cloudflare R2

Storecraft supports Cloudflare R2 storage services.

Features

  • Works in any js runtime and platform that supports fetch
  • Supports streaming Get / Put / Delete
  • Supports presigned Get / Put requests to offload to client

First,

npm i @storecraft/storage-s3-compatible

usage

import { App } from '@storecraft/core';
import { R2 } from '@storecraft/storage-s3-compatible'
const app = new App()
.withPlatform(new NodePlatform())
.withDatabase(new MongoDB())
.withStorage(
new R2(
{
account_id: process.env.CF_ACCOUNT_ID,
bucket: process.env.S3_BUCKET,
accessKeyId: process.env.S3_ACCESS_KEY_ID,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY
}
)
).init();

config

Storecraft will search the following env variables

CF_ACCOUNT_ID=...
S3_BUCKET=...
S3_ACCESS_KEY_ID=...
S3_SECRET_ACCESS_KEY=...

So, you can instantiate with empty config

.withStorage(
new R2()
)

All Rights Reserved, storecraft, (2025)