PricingDocsAccount

Configuring Cloudflare R2 Storage

[object Object]

Why Cloudflare R2 is the Preferred S3 Store

When your render nodes are not in the same local network (such as remote artists working from home or rented RunPod / Vast.ai cloud instances), the workspace must use object storage.

Among all S3-compatible storage providers, Cloudflare R2 is strongly recommended:

  1. Zero Egress Fees: Traditional cloud providers (like AWS S3 or Alibaba Cloud OSS) charge steep egress fees per gigabyte downloaded. When several RTX 4090 instances pull dozens of gigabytes of textures simultaneously, bandwidth fees can rapidly outpace GPU rental costs. Cloudflare R2 charges $0 for data egress.
  2. Full HTTP Range Header Support: danio uses bundled Pack volumes, allowing workers to pull only the specific entries needed for their assigned shots. R2 fully supports standard S3 Range requests (byte-offset reads), avoiding full-package downloads.
  3. Global Anycast Edge Network: Whether your cloud compute nodes are deployed in North America, Europe, or East Asia, they route through Cloudflare's Anycast edge for consistent low-latency access.

Step 1: Create an R2 Bucket

  1. Log into the Cloudflare Dashboard.
  2. In the left navigation, select R2 Object Storage (if new, enable R2 with a payment card or PayPal; Cloudflare provides a generous 10 GB free tier each month).
  3. Click Create bucket.
  4. Enter a bucket name (e.g., danio-render-store). Leave Location as Automatic, and click Create bucket.

Step 2: Generate S3-Compatible API Credentials

To allow danio to read and write to your bucket:

  1. In the R2 overview page, click Manage R2 API Tokens on the right side.
  2. Click Create API Token.
  3. Configure the permissions:
    • Permissions: Select Object Read & Write.
    • Specify bucket: Choose "All buckets" or restrict to danio-render-store.
    • TTL: Choose an expiration or leave it persistent according to your security policy.
  4. Click Create API Token at the bottom.
  5. Save the generated credentials immediately (the Secret Key will not be shown again):
    • Access Key ID
    • Secret Access Key
    • S3 API Endpoint: Looks like https://<account_id>.r2.cloudflarestorage.com.

Step 3: Configure Storage in danio

Open your danio host interface:

Scenario A: Configuring during Workspace Creation

On first launch or in the "Create Workspace" wizard, set store type to S3 and fill in:

  • Endpoint: Paste your R2 Endpoint, e.g., https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.r2.cloudflarestorage.com.
  • Bucket: Your bucket name, e.g., danio-render-store.
  • Region: Enter auto.
  • Access Key & Secret Key: Paste your API token credentials.
  • Path style: Leave off (R2 natively supports virtual-host and path styles).

Scenario B: Migrating an Existing Workspace to R2

If your workspace currently uses a local folder or SMB shared folder:

  1. Go to Workspace details → Store.
  2. Click Move to… on the right.
  3. Select S3 and enter your R2 configuration.
  4. danio migrates packs seamlessly in the background. You do not need to pause rendering or submissions during migration.

Step 4: Verification & Compatibility Tests

Before saving or migrating, danio automatically runs a suite of S3 compatibility checks against the endpoint:

  • Signature verification (Signature v4)
  • Multipart upload (for packs larger than 16 MB)
  • Byte Range reads (HTTP Range for on-demand asset retrieval)
  • Pre-signed URL generation and SHA-256 integrity verification

Once verified, the store status displays as Normal, and your workspace is ready for cloud nodes.

Advanced: Restricted Worker Credentials (Optional)

To safeguard sensitive studio data, danio allows entering a separate pair of Worker keys:

  1. In Cloudflare, generate another API token with Object Read only permission.
  2. In danio's Store settings, expand Worker Keys and enter this read-only pair.
  3. Joined cloud render nodes receive this restricted credential—they can pull needed packs but have no rights to overwrite or delete assets in the bucket.