This skill guides Backblaze B2 Cloud Storage integration with OpenTofu/Terraform and B2 CLI. Use when managing B2 buckets, application keys, file uploads, lifecycle rules, or S3-compatible storage.
View on GitHubmajesticlabs-dev/majestic-marketplace
majestic-devops
January 24, 2026
Select agents to install to:
npx add-skill https://github.com/majesticlabs-dev/majestic-marketplace/blob/main/plugins/majestic-devops/skills/backblaze-coder/SKILL.md -a claude-code --skill backblaze-coderInstallation paths:
.claude/skills/backblaze-coder/# Backblaze Coder
## Overview
Backblaze B2 is an affordable S3-compatible cloud storage service. This skill covers B2 CLI usage, Terraform provisioning, and S3-compatible API integration.
## B2 CLI Installation
```bash
# macOS
brew install b2-tools
# Linux (Debian/Ubuntu)
sudo apt install backblaze-b2
# Linux (via pip)
pip install b2
# Verify installation
b2 version
```
## CLI Authentication
```bash
# Authorize with application key (preferred)
b2 authorize-account <applicationKeyId> <applicationKey>
# Or with 1Password
b2 authorize-account $(op read "op://Infrastructure/Backblaze/key_id") \
$(op read "op://Infrastructure/Backblaze/application_key")
# Credentials stored in ~/.b2_account_info (SQLite)
# Override with B2_ACCOUNT_INFO env var
```
**Application Key Capabilities:**
| Capability | Operations |
|------------|------------|
| `listBuckets` | List buckets (minimum required) |
| `listFiles` | List files in bucket |
| `readFiles` | Download files |
| `writeFiles` | Upload files |
| `deleteFiles` | Delete files |
| `writeBucketRetentions` | Modify retention settings |
| `readBucketEncryption` | Read encryption settings |
| `writeBucketEncryption` | Modify encryption settings |
## B2 CLI Operations
### Bucket Management
```bash
# List buckets
b2 bucket list
# Create bucket (allPrivate or allPublic)
b2 bucket create my-bucket allPrivate
# Create with lifecycle rules
b2 bucket create my-bucket allPrivate \
--lifecycle-rules '[{"daysFromHidingToDeleting": 30, "fileNamePrefix": "logs/"}]'
# Delete bucket (must be empty)
b2 bucket delete my-bucket
# Update bucket type
b2 bucket update my-bucket allPrivate
```
### File Operations
```bash
# List files in bucket
b2 ls my-bucket
b2 ls my-bucket path/to/folder/
# Upload file
b2 upload-file my-bucket local-file.txt remote/path/file.txt
# Upload with content type
b2 upload-file --content-type "application/json" my-bucket data.json data.json
# Download file
b2 download-file-by-na