Better Upload

Helpers

A collection of helper functions and utilities for your project.

S3 Clients

Better Upload has some built-in clients for popular S3-compatible storage services, like Cloudflare R2. Suggest a new client by opening an issue.

import { r2 } from 'better-upload/server/helpers';

const client = r2({
  accountId: 'your-account-id',
  accessKeyId: 'your-access-key-id',
  secretAccessKey: 'your-secret-access-key',
});

const jurisdictionClient = r2({
  accountId: 'your-account-id',
  accessKeyId: 'your-access-key-id',
  secretAccessKey: 'your-secret-access-key',
  jurisdiction: 'eu', // If you created your R2 bucket using a jurisdiction.
});

All clients return an instance of an S3 client from the AWS SDK, just like new S3Client(), but already configured for the specific service.

Bucket Objects

Move object (rename)

Moves an object from one location to another, within the same bucket. Also known as renaming.

import { moveObject } from 'better-upload/server/helpers';

await moveObject({
  client: r2(),
  bucketName: 'my-bucket',
  objectKey: 'example.jpg',
  destinationKey: 'images/example.jpg',
});

This copies the object to the new location and then deletes the original object. It can be slow.