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
Amazon S3
Scalable object storage compatible with S3 API.Installation
Configuration
S3-Compatible Services
- MinIO
- Backblaze B2
- DigitalOcean Spaces
- Wasabi
IAM Policy
Minimum required permissions:Advanced Features
Transfer Acceleration
Transfer Acceleration
Object Tagging
Object Tagging
Custom Key Prefix
Custom Key Prefix
Google Cloud Storage
Scalable object storage on Google Cloud Platform.Installation
Configuration
Service Account Setup
1
Create Service Account
In Google Cloud Console:
- Navigate to IAM & Admin > Service Accounts
- Create a new service account
- Grant “Storage Object Admin” role
2
Generate Key
- Click on the service account
- Go to Keys tab
- Add Key > Create new key
- Choose JSON format
3
Configure Open WebUI
Use the JSON key content in
GOOGLE_APPLICATION_CREDENTIALS_JSONRequired IAM Roles
roles/storage.objectAdmin(or custom role with these permissions):storage.objects.createstorage.objects.deletestorage.objects.getstorage.objects.list
Bucket Configuration
Recommended bucket settings:Azure Blob Storage
Microsoft Azure’s object storage solution.Installation
Configuration
Authentication Methods
- Storage Account Key
- Managed Identity
- SAS Token
Container Setup
1
Create Storage Account
2
Create Container
3
Configure Access
For managed identity:
Migration Between Storage Providers
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
Access Denied Errors
Access Denied Errors
S3:
- Verify IAM policy permissions
- Check bucket policy
- Ensure credentials are correct
- Verify service account has Storage Object Admin role
- Check JSON credentials format
- Ensure bucket exists and is accessible
- Verify storage account key or SAS token
- Check container exists
- Verify managed identity role assignment
Connection Timeout
Connection Timeout
- Check network connectivity
- Verify endpoint URL is correct
- Check firewall rules
- For S3: Verify region is correct
Upload Failures
Upload Failures
- Check file size limits
- Verify sufficient permissions
- Check storage quota
- Review application logs
Best Practices
-
Security:
- Use IAM roles instead of access keys when possible
- Enable bucket/container encryption
- Restrict public access
- Rotate credentials regularly
-
Performance:
- Choose region close to your users/servers
- Enable CDN for frequently accessed files
- Use multipart uploads for large files
-
Reliability:
- Enable versioning
- Configure backup/replication
- Monitor storage metrics
- Set up alerts for failures
-
Cost:
- Use lifecycle policies
- Choose appropriate storage class
- Monitor and optimize access patterns
- Clean up unused files
References
- AWS S3: docs.aws.amazon.com/s3
- Google Cloud Storage: cloud.google.com/storage/docs
- Azure Blob Storage: docs.microsoft.com/azure/storage/blobs