Skip to main content

Overview

Open WebUI supports cloud storage backends for scalable file storage. Choose between local filesystem, Amazon S3, Google Cloud Storage, or Azure Blob Storage based on your deployment needs.

Storage Options

Local Storage

Default filesystem storage

Amazon S3

S3 and S3-compatible storage

Google Cloud Storage

GCS buckets

Azure Blob Storage

Azure Storage containers

Local Storage (Default)

Files are stored in the local filesystem.

Configuration

Directory Structure

Use Cases

Single-server deployments
Development environments
Small-scale production
Local storage is not recommended for:
  • Multi-node deployments
  • High-availability setups
  • Large file volumes

Amazon S3

Scalable object storage compatible with S3 API.

Installation

File: backend/requirements.txt:120

Configuration

File: backend/open_webui/config.py:953

S3-Compatible Services

IAM Policy

Minimum required permissions:
With tagging enabled:

Advanced Features

Requires S3 Transfer Acceleration to be enabled on the bucket.File: backend/open_webui/config.py:961
Automatically tags objects with metadata for organization.File: backend/open_webui/config.py:965
Adds a prefix to all object keys for organization.File: backend/open_webui/config.py:959

Google Cloud Storage

Scalable object storage on Google Cloud Platform.

Installation

File: backend/requirements.txt:112

Configuration

File: backend/open_webui/config.py:967

Service Account Setup

1

Create Service Account

In Google Cloud Console:
  1. Navigate to IAM & Admin > Service Accounts
  2. Create a new service account
  3. Grant “Storage Object Admin” role
2

Generate Key

  1. Click on the service account
  2. Go to Keys tab
  3. Add Key > Create new key
  4. Choose JSON format
3

Configure Open WebUI

Use the JSON key content in GOOGLE_APPLICATION_CREDENTIALS_JSON

Required IAM Roles

  • roles/storage.objectAdmin (or custom role with these permissions):
    • storage.objects.create
    • storage.objects.delete
    • storage.objects.get
    • storage.objects.list

Bucket Configuration

Recommended bucket settings:

Azure Blob Storage

Microsoft Azure’s object storage solution.

Installation

File: backend/requirements.txt:103

Configuration

File: backend/open_webui/config.py:972

Authentication Methods

Find in Azure Portal > Storage Account > Access Keys

Container Setup

1

Create Storage Account

2

Create Container

3

Configure Access

For managed identity:

Migration Between Storage Providers

Migrating storage providers requires manual file transfer. Plan for downtime during migration.

Migration Steps

1

Backup Current Storage

2

Setup New Storage

Configure the new storage provider (create bucket/container, set permissions)
3

Transfer Files

4

Update Configuration

5

Restart and Verify

Cost Optimization

Lifecycle Policies

Configure automatic archival or deletion of old files

Storage Classes

Use infrequent access tiers for rarely accessed files

Compression

Enable compression for text files before upload

Deduplication

Implement file hashing to avoid duplicate uploads

S3 Lifecycle Example

Troubleshooting

S3:
  • Verify IAM policy permissions
  • Check bucket policy
  • Ensure credentials are correct
GCS:
  • Verify service account has Storage Object Admin role
  • Check JSON credentials format
  • Ensure bucket exists and is accessible
Azure:
  • Verify storage account key or SAS token
  • Check container exists
  • Verify managed identity role assignment
  • Check network connectivity
  • Verify endpoint URL is correct
  • Check firewall rules
  • For S3: Verify region is correct
  • Check file size limits
  • Verify sufficient permissions
  • Check storage quota
  • Review application logs

Best Practices

  1. Security:
    • Use IAM roles instead of access keys when possible
    • Enable bucket/container encryption
    • Restrict public access
    • Rotate credentials regularly
  2. Performance:
    • Choose region close to your users/servers
    • Enable CDN for frequently accessed files
    • Use multipart uploads for large files
  3. Reliability:
    • Enable versioning
    • Configure backup/replication
    • Monitor storage metrics
    • Set up alerts for failures
  4. Cost:
    • Use lifecycle policies
    • Choose appropriate storage class
    • Monitor and optimize access patterns
    • Clean up unused files

References