Backblaze B2 is an S3-compatible object storage service. Mixpeek auto-discovers your regional endpoint — you only need your application key ID and application key.
Overview
The Backblaze B2 integration lets Mixpeek sync objects from any B2 bucket into your Mixpeek buckets for processing. Each file becomes a bucket object with its metadata, ready for feature extraction in your collections. Mixpeek uses Backblaze’s S3-compatible API via the standard AWS SDK. On connection creation, it calls the B2 authorization API to discover your account’s correct regional endpoint (e.g.,s3.us-east-005.backblazeb2.com) automatically.
Prerequisites
- An active Backblaze account with B2 Cloud Storage enabled.
- An application key with at minimum:
listBuckets,listFiles, andreadFilescapabilities. - The key ID and application key (shown once at creation — copy it immediately).
Configuration
Connection-Level Fields
| Field | Required | Description |
|---|---|---|
key_id | Yes | Backblaze B2 application key ID |
application_key | Yes | Backblaze B2 application key (secret) — encrypted at rest |
Sync-Level Fields
| Field | Required | Description |
|---|---|---|
source_path | Yes | b2://bucket-name/optional/prefix or bucket-name/prefix |
sync_mode | No | continuous, one_time, or scheduled |
polling_interval_seconds | No | Seconds between scheduled runs |
include_patterns | No | Glob patterns to include (e.g., ["*.mp4", "*.jpg"]) |
exclude_patterns | No | Glob patterns to exclude (e.g., ["*.tmp"]) |
modified_since | No | Only sync files modified after this ISO 8601 timestamp |
Setup
Create a Backblaze application key
- Log in to the Backblaze Console.
- Go to App Keys in the left sidebar.
- Click Add a New Application Key.
- Set a name (e.g.,
mixpeek-sync) and choose the buckets to grant access to. - Enable: Read and Write Files, List Buckets, List Files, Read Files.
- Click Create New Key and copy both the keyID and applicationKey immediately — the key is shown only once.
Advanced Configuration
Scoped Key (Recommended)
For production, create a key scoped to a specific bucket:- In Backblaze Console → App Keys → Add New Key
- Under Allow access to Bucket(s), select a single bucket
- This limits the key’s blast radius if it’s ever compromised
File Filtering
Filter which files are synced using glob patterns:Incremental Sync
Only sync files added or modified after a specific date:Source Path Format
Thesource_path supports multiple formats:
| Format | Example | Description |
|---|---|---|
b2://bucket/prefix | b2://my-videos/2024/ | Preferred — explicit B2 scheme |
s3://bucket/prefix | s3://my-videos/2024/ | S3-style URI also accepted |
bucket/prefix | my-videos/2024/ | Bare bucket + prefix |
bucket | my-videos | Entire bucket |
Sync Modes
| Mode | Description | When to Use |
|---|---|---|
continuous | Polls every polling_interval_seconds | Real-time monitoring, active uploads |
one_time | Single import, then completes | Historical backfills, migrations |
scheduled | Runs on a fixed interval | Regular batch processing |
Troubleshooting
Connection test returns 401 Unauthorized
Connection test returns 401 Unauthorized
No files synced from a bucket that has objects
No files synced from a bucket that has objects
- Verify the
source_pathmatches the correct bucket name (case-sensitive). - Check that your application key has listFiles and readFiles capabilities.
- If the key is scoped to a specific bucket, ensure the bucket name in
source_pathmatches exactly. - Check
include_patterns— make sure they match your file extensions.
Connection test succeeds but sync returns Access Denied
Connection test succeeds but sync returns Access Denied
Your application key may have listBuckets but not listFiles on a specific bucket:
- Create a new key with List Files and Read Files enabled for the target bucket.
- Update the connection with the new key.
Files in sub-folders are not being synced
Files in sub-folders are not being synced
Backblaze B2 uses flat key namespacing (like S3). Folders are just key prefixes.
- Use
b2://bucket/(trailing slash) to sync all files recursively. - Use
b2://bucket/subfolder/to scope to a specific prefix.

