S3 Storage Setup Guide: Stream Music & Videos from Backblaze B2, AWS, Cloudflare R2, Google Cloud Storage
Cloudist now supports S3-compatible cloud storage — connect your Backblaze B2, AWS S3, Cloudflare R2, Google Cloud Storage, Wasabi, MinIO, or any S3-compatible service and stream your music and videos directly from your buckets.
This guide walks you through everything you need to know about setting up S3 storage with Cloudist Play (music) and Cloudist Watch (video).
What is S3 Storage?
Amazon S3 (Simple Storage Service) is the industry standard for object storage. Many providers offer S3-compatible APIs, meaning you can use the same protocol to access storage from different companies. This gives you:
- Freedom of choice — pick any provider that fits your budget and needs
- No vendor lock-in — switch providers without changing your setup
- Cost efficiency — store large media libraries for pennies per GB
- Self-hosting option — run MinIO on your own server
Supported Providers
Cloudist works with any S3-compatible storage. Here are the most popular options:
| Provider | Free Tier | Egress (Download) | Best For |
|---|---|---|---|
| **Backblaze B2** | 10 GB | 3x storage/month free | Best free tier |
| **Cloudflare R2** | 10 GB/month | Unlimited (free!) | Zero egress costs |
| **AWS S3** | 5 GB (12 months) | 100 GB/month free | Enterprise users |
| **Google Cloud Storage** | 5 GB (always free) | $0.045-$0.085/GB | Google ecosystem |
| **Wasabi** | None ($6.99/mo min) | Included | Hot storage |
| **MinIO** | Self-hosted | N/A | Full control |
Our Recommendation
For most users, Backblaze B2 or Cloudflare R2 offer the best value. B2 gives you 10 GB free storage with generous free egress, while R2 has completely free downloads — ideal for streaming media. If you're already in the Google ecosystem, Google Cloud Storage offers seamless integration with 5 GB always free.
Step-by-Step Setup Guide
Step 1: Create Your S3 Bucket
First, create a bucket on your chosen provider:
Backblaze B2:
- Sign up at backblaze.com
- Go to Buckets → Create a Bucket
- Name it (e.g.,
my-music) and set it to Private - Note down your Endpoint and Region from bucket details
AWS S3:
- Open the S3 Console
- Click Create bucket
- Choose a region close to you (e.g.,
us-east-1) - Keep "Block all public access" enabled
Cloudflare R2:
- Log in to Cloudflare Dashboard
- Go to R2 Object Storage → Create bucket
- Note your Account ID from the dashboard URL
Google Cloud Storage:
- Open the Cloud Storage Console
- Click Create bucket
- Choose a region close to you (e.g.,
us-central1) - Select Standard storage class for frequently accessed media
- Keep "Enforce public access prevention" enabled
Step 2: Create Access Keys
You need an Access Key ID and Secret Access Key to connect:
Backblaze B2:
- Go to Application Keys → Add a New Application Key
- Give it a name, select your bucket, and choose Read Only
- Save the keyID (Access Key) and applicationKey (Secret Key)
AWS S3:
- Go to IAM → Users → Create User
- Attach the AmazonS3ReadOnlyAccess policy
- Create an Access Key under Security Credentials
Cloudflare R2:
- Go to R2 → Manage R2 API Tokens
- Create a token with Object Read permission for your bucket
Google Cloud Storage:
- Go to Cloud Storage → Settings → Interoperability
- Click Create a key for a service account or use your default account
- This generates an HMAC Access Key and Secret Key compatible with S3
- For read-only access, assign the Storage Object Viewer role to the service account
Step 3: Upload Your Media Files
Upload your music or video files to the bucket. You can organize them in folders:
my-music/
Rock/
song1.mp3
song2.flac
Jazz/
track1.m4a
Podcasts/
episode1.mp3Use your provider's web console, CLI tool, or apps like Cyberduck or rclone to upload files.
Step 4: Connect in Cloudist
- Open Cloudist Play or Cloudist Watch
- Go to Accounts → tap the + button
- Select S3 Storage
- Choose your provider preset from the dropdown (Backblaze B2, AWS S3, Cloudflare R2, Wasabi, or Custom)
- The Endpoint and Region fields auto-fill based on your preset
- Enter your Access Key and Secret Key
- Enter your Bucket name
- Tap Test & Connect
That's it! Cloudist will scan your bucket and add all supported media files to your library.
How Streaming Works
Cloudist uses pre-signed URLs to stream your media. Here's what that means:
- When you play a track, Cloudist generates a temporary URL (valid for 1 hour) that grants access to that specific file
- No authentication headers are needed — the URL itself contains the signature
- This works seamlessly with audio and video players across all platforms
- URLs are automatically regenerated when they expire
This approach is both secure (URLs expire quickly) and efficient (no proxy server needed).
Supported File Formats
Cloudist Play (Music):
- MP3, M4A, WAV, FLAC, AAC, WMA, OGG
Cloudist Watch (Video):
- MP4, MKV, WebM, AVI, MOV, M4V, FLV, WMV, TS, 3GP
Web App: CORS Configuration
If you use the web app (play.fromcloud.ist or watch.fromcloud.ist), your bucket needs CORS configuration to allow browser access. Here's the CORS policy to add:
[{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "HEAD"],
"AllowedOrigins": ["https://play.fromcloud.ist", "https://watch.fromcloud.ist"],
"ExposeHeaders": ["ETag", "Content-Length"],
"MaxAgeSeconds": 3600
}]Note: CORS configuration is only needed for web playback. Native apps (iOS, Android, macOS) don't require it.
Cost Comparison
Here's what it costs to store and stream a typical music library (1,000 tracks, ~8 GB) with 100 plays per month:
| Provider | Monthly Cost |
|---|---|
| **Backblaze B2** | $0.00 (free tier) |
| **Cloudflare R2** | $0.00 (free egress) |
| **AWS S3** | ~$0.18 |
| **Google Cloud Storage** | $0.00 (free tier) |
| **Wasabi** | $6.99 (minimum) |
| **MinIO** | Server cost only |
For a video library (200 videos, ~100 GB) with 50 plays per month:
| Provider | Monthly Cost |
|---|---|
| **Backblaze B2** | ~$0.50 |
| **Cloudflare R2** | ~$1.35 |
| **AWS S3** | ~$4.55 |
| **Google Cloud Storage** | ~$2.15 |
| **Wasabi** | $6.99 (minimum) |
Tips & Best Practices
- Use read-only keys — Cloudist only needs to read files, never write. Create keys with minimum permissions
- Organize with folders — Use a clear folder structure. Cloudist preserves your folder hierarchy for easy browsing
- Choose a nearby region — Pick a storage region close to your location for faster streaming
- Backblaze B2 + Cloudflare — If you use B2 with Cloudflare CDN, egress between them is completely free (Bandwidth Alliance)
- MinIO for self-hosting — Run MinIO on a Raspberry Pi or NAS for a fully private, self-hosted media server
Frequently Asked Questions
Do my credentials get uploaded anywhere?
No. Your S3 access keys are stored only on your device using secure local storage. They are never sent to Cloudist servers or stored in the cloud.
Can I connect multiple S3 accounts?
Yes. You can add as many S3 storage accounts as you want — mix different providers, buckets, or regions.
Does it work offline?
Yes. You can download tracks for offline playback. Downloaded files are stored locally on your device.
What happens if my pre-signed URL expires?
Cloudist automatically generates a new URL when needed. You won't notice any interruption during playback.
Get Started
Download Cloudist and connect your S3 storage today:
- Cloudist Play (Music): App Store · Google Play · Web
- Cloudist Watch (Video): App Store · Google Play · Web