Supported providers
Pixeltable Cloud
Free managed storage, no bucket setup required
Amazon S3
Native S3 storage with full feature support
Google Cloud Storage
GCS buckets with gs:// URI scheme
Azure Blob Storage
Azure containers with wasb:// or abfs:// schemes
Cloudflare R2
S3-compatible storage with zero egress fees
Backblaze B2
Cost-effective S3-compatible storage
Tigris
Globally distributed S3-compatible storage
How it works
When you configure a storage destination, Pixeltable automatically:- Uploads computed media — AI-generated images, extracted video frames, and other computed media files are stored in your bucket
- Copies input media — Optionally persists referenced media files for durability
- Manages file lifecycle — Cleans up files when table data is deleted
- Handles caching — Downloads files on-demand with intelligent local caching
Configuration
There are two ways to configure cloud storage destinations:Global default destinations
Set default destinations for all media columns in yourconfig.toml (see Configuration for details):
Per-column destination (computed columns only)
For computed columns, you can override the default with a specific destination:The
destination parameter only applies to stored computed columns. For input columns, use the global input_media_dest configuration.Precedence rules
Destinations are resolved in this order:- Explicit column destination — highest priority (computed columns only)
- Global default —
input_media_destfor input columns,output_media_destfor computed columns - Local storage — fallback if no destination is configured
Provider configuration
Pixeltable Cloud (home bucket)
Every Pixeltable Cloud account includes a free managed storage bucket. No bucket creation, no credentials file, no cloud provider account needed.- URI Format
- Authentication
- Example
org-slug and db-slug with your Pixeltable Cloud organization and database names.Amazon S3
- URI Format
- Authentication
- Example
Google Cloud Storage
- URI Format
- Authentication
- Requirements
- Example
Azure Blob Storage
- URI Formats
- Authentication
- Requirements
- Example
Azure supports multiple URI schemes:
Cloudflare R2
- URI Format
- Authentication
- Example
Backblaze B2
- URI Format
- Authentication
- Example
Tigris
- URI Format
- Authentication
- Example
Complete example
Here’s a full example using S3 for both input and computed media. First, configure your global destinations in~/.pixeltable/config.toml:
Best practices
Use prefixes to organize data
Use prefixes to organize data
Structure your bucket with prefixes that reflect your application:
Separate input and output destinations
Separate input and output destinations
Use different prefixes or buckets for input vs computed media:
- Easier to set different retention policies
- Clearer cost attribution
- Simpler backup strategies
Configure lifecycle policies
Configure lifecycle policies
Set up bucket lifecycle policies to automatically:
- Transition old data to cheaper storage tiers
- Delete temporary/staging data after a period
- Enable versioning for critical data
Use IAM roles in production
Use IAM roles in production
When running on cloud infrastructure, use IAM roles instead of access keys:
- More secure (no key rotation needed)
- Automatic credential refresh
- Better audit trails
Troubleshooting
Access Denied errors
Access Denied errors
Verify your credentials have the necessary permissions:
s3:GetObject,s3:PutObject,s3:DeleteObjects3:ListBucketfor the bucket
storage.objects.create, storage.objects.get, storage.objects.deleteBucket not found
Bucket not found
- Ensure the bucket exists and the name is spelled correctly
- Check the region matches your credential configuration
- For S3-compatible providers, verify the endpoint URL is correct
Slow uploads
Slow uploads
- Pixeltable uses connection pooling and parallel uploads automatically
- Consider using a bucket in the same region as your compute
- Check your network bandwidth and latency
Configuration Reference
See the complete list of storage configuration options including profiles for S3, R2, B2, Tigris, and Azure.