Files
bitvid/content/upload-content.md
T
google-labs-jules[bot] c3179672b1 docs: update R2 CORS policy to include POST and HEAD
Updated the Cloudflare R2 setup instructions in `content/upload-content.md` to include `POST` and `HEAD` in the `AllowedMethods` CORS configuration. This is necessary for multipart uploads (which use POST) and verification checks (which use HEAD) to function correctly.
2026-01-14 16:42:36 +00:00

70 lines
2.6 KiB
Markdown

# 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
1. Log in to your [Cloudflare Dashboard](https://dash.cloudflare.com/).
2. Navigate to **R2** in the sidebar.
3. Click **"Create Bucket"**.
4. Give it a name (e.g., `my-bitvid-videos`) and click **"Create Bucket"**.
5. Go to the **Settings** tab of your new bucket.
6. Scroll down to **"Public Access"** and click **"Enable"** under "R2.dev subdomain".
7. **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).
1. Still in your bucket's **Settings** tab, scroll down to **"CORS Policy"**.
2. Click **"Add CORS Policy"** (or Edit).
3. Paste the following JSON configuration:
```json
[
{
"AllowedOrigins": ["*"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag", "Content-Length", "Content-Range", "Accept-Ranges"],
"MaxAgeSeconds": 3600
}
]
```
> **Note:** You can replace `"*"` in `AllowedOrigins` with your specific domain (e.g., `["https://bitvid.network"]`) for tighter security, but `"*"` is easiest for getting started.
4. Click **"Save"**.
### 3. Create an API Token
1. Go back to the **R2 Overview** page.
2. Click **"Manage R2 API Tokens"** (right sidebar).
3. Click **"Create API Token"**.
4. **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".
5. Click **"Create API Token"**.
### 4. Configure bitvid
1. Copy the **Access Key ID**, **Secret Access Key**, and your **Account ID** (found on the R2 Overview page).
2. Return to the **Upload Video** modal in bitvid.
3. Click **"Configure R2 Storage"**.
4. Enter your:
- **Account ID**
- **Access Key ID**
- **Secret Access Key**
- **Public Bucket URL** (from Step 1)
5. Click **"Verify & Save"**.
bitvid will verify your credentials by uploading a small test file. Once verified, you are ready to upload!