Connect Cloudflare R2 storage

This guide walks you through connecting an S3-compatible object storage bucket hosted on your own account to HeftySend. The steps below use Cloudflare R2 as the example provider, but any S3-compatible storage with similar setup options will follow the same general pattern.

Custom storage requires a Premium or Ultra plan. See Using your own storage with HeftySend for an overview.

Step 1: Create your bucket

  • Log in to your storage provider dashboard
  • Navigate to the object storage section and create a new bucket
  • Give it a name and choose a location

Step 2: Set up CORS

  • Open your bucket settings and find the CORS policy section
  • Add the following CORS configuration:
[
  {
    "AllowedOrigins": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3000
  }
]

CORS must be set on the bucket or uploads from the browser will be blocked. Wait 2 to 3 minutes after saving for the changes to take effect.

Step 3: Create an API token

  • Go to the API tokens or access keys section of your storage account
  • Create a new token with Object Read and Object Write permissions
  • Scope it to your specific bucket
  • Save the Access Key ID and Secret Access Key

The Secret Access Key is only shown once. Copy it to a safe place before closing the window.

Step 4: Find your endpoint

Your S3-compatible endpoint is shown in your account dashboard. For R2-style storage it follows the format:

https://[ACCOUNT_ID].r2.cloudflarestorage.com

Replace [ACCOUNT_ID] with your actual account identifier.

Step 5: Connect to HeftySend

  1. Go to Settings > Storage in your HeftySend dashboard
  2. Click "Configure S3 Storage"
  3. Enter your endpoint URL
  4. Enter your Access Key ID and Secret Access Key
  5. Enter your bucket name
  6. Select your region from the dropdown
  7. Click "Test Connection" then "Save"

Available regions

Region code Location
wnam Western North America
enam Eastern North America
weur Western Europe
eeur Eastern Europe
apac Asia Pacific

Troubleshooting

If connection fails, double-check your endpoint URL and credentials. For CORS errors, confirm the CORS policy was saved correctly and give it a few minutes to propagate.

Last updated on March 10, 2026