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:
- 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.
- Full HTTP
RangeHeader Support: danio uses bundled Pack volumes, allowing workers to pull only the specific entries needed for their assigned shots. R2 fully supports standard S3Rangerequests (byte-offset reads), avoiding full-package downloads. - 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
- Log into the Cloudflare Dashboard.
- 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).
- Click Create bucket.
- 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:
- In the R2 overview page, click Manage R2 API Tokens on the right side.
- Click Create API Token.
- 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.
- Click Create API Token at the bottom.
- 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:
- Go to Workspace details → Store.
- Click Move to… on the right.
- Select S3 and enter your R2 configuration.
- 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:
- In Cloudflare, generate another API token with Object Read only permission.
- In danio's Store settings, expand Worker Keys and enter this read-only pair.
- 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.