3.4 KiB
How to Upload Content
bitvid is a decentralized platform, but for larger video files, we currently support Cloudflare R2 as a storage backend. This allows you to upload files directly from your browser to a high-performance, affordable storage bucket.
Prerequisites
- A Cloudflare Account (free to create).
- An activated R2 Plan (there is a generous free tier, but you may need to add a payment method).
Step-by-Step Guide
1. Create a Bucket & Enable Public Access
- Log in to your Cloudflare Dashboard.
- Navigate to R2 in the sidebar.
- Click "Create Bucket".
- Give it a name (e.g.,
my-bitvid-videos) and click "Create Bucket". - Go to the Settings tab of your new bucket.
- Scroll down to "Public Access" and click "Enable" under "R2.dev subdomain".
- Copy the Public Bucket URL (it looks like
https://pub-xxxxxx.r2.dev). You will need this later.
2. Configure CORS
To allow your browser to upload files directly to Cloudflare, you must allow Cross-Origin Resource Sharing (CORS).
- Still in your bucket's Settings tab, scroll down to "CORS Policy".
- Click "Add CORS Policy" (or Edit).
- Important: Browser uploads use the AWS JavaScript SDK, which sends the
amz-sdk-invocation-id,amz-sdk-request, andx-amz-user-agentheaders. The simplest working setup is to allow all headers by settingAllowedHeaders: ["*"]. - Paste the following JSON configuration and explicitly list every allowed app origin (the scheme, host, and port must match exactly):
[
{
"AllowedOrigins": ["http://127.0.0.1:5500", "https://bitvid.network"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD", "OPTIONS"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag", "Content-Length", "Content-Range", "Accept-Ranges"],
"MaxAgeSeconds": 3600
}
]
Note: Replace the
AllowedOriginsvalues with the exact origins you use in development and production (the scheme and port must match exactly). Uploads go through the S3 API endpoint (<account>.r2.cloudflarestorage.com), and browser-based uploads requireOPTIONSfor preflight requests.
- Click "Save".
3. Create an API Token (S3 Credentials)
- Go back to the R2 Overview page.
- Click "Manage R2 API Tokens" (right sidebar).
- Click "Create API Token".
- Configure the token:
- Token name: e.g., "bitvid-upload".
- Permissions: Select "Object Read & Write". This is the minimal permission needed to upload and delete files.
- Specific Bucket(s): Select the bucket you created in Step 1.
- TTL: "Forever".
- Click "Create API Token".
- Copy the credentials: You will need the Access Key ID and Secret Access Key.
4. Configure bitvid
- Copy the Access Key ID, Secret Access Key, and your Account ID (found on the R2 Overview page).
- In bitvid, open your Profile (click your avatar).
- Navigate to the Storage tab (or click "Configure R2 Storage" in the Upload Modal to be redirected there).
- Click "Add Connection" and select Cloudflare R2.
- Enter your:
- Account ID
- Access Key ID
- Secret Access Key
- Public Bucket URL (from Step 1)
- Click "Save Connection".
bitvid will verify your credentials by uploading a small test file. Once verified, return to the Upload Modal to start sharing!