Cloud audio storage (S3)

5 min read

Move generated audio files off your WordPress server and onto Amazon S3. Reduces disk use, speeds up audio delivery with CloudFront, and makes your library scalable.

Two options

Option 1: TTSWP-managed cloud (default for paid plans)

On Pro and Agency plans, audio is automatically stored on TTSWP's S3 bucket and served from CloudFront. No setup. Your site simply plays audio from fast URLs.

No AWS account needed. No credentials to manage.

Option 2: Your own S3 bucket

Advanced users can configure their own S3 bucket. Files are stored in your AWS account and billed to you directly.

This option is for:

  • Enterprise customers with existing AWS infrastructure
  • Sites needing full data residency control
  • Agencies managing storage separately for clients

Setting up your own S3

Prerequisites

  • An AWS account
  • Basic familiarity with IAM and S3

Step 1: Create an S3 bucket

  1. Log in to AWS Console → S3.
  2. Click Create bucket.
  3. Give it a unique name (example: ttswp-audio-yourdomain).
  4. Pick a region close to most of your visitors.
  5. Leave "Block all public access" OFF for this bucket (audio needs public read).
  6. Create the bucket.

Step 2: Create an IAM user

  1. Go to IAM → Users → Create user.
  2. Username: ttswp-audio-uploader.
  3. Attach a policy that allows s3:PutObject, s3:GetObject, s3:DeleteObject, s3:ListBucket on your new bucket.
  4. Create access key pair and copy both the Access Key ID and Secret Access Key.

Step 3: Add credentials to TTSWP

  1. Go to Text to Speech → Overview → Quick Settings.
  2. Flip Cloud audio storage to on.
  3. Fill in:
    • S3 Provider: Amazon S3
    • Access Key ID: from step 2
    • Secret Access Key: from step 2
    • Bucket: your bucket name from step 1
    • Region: the region you picked
    • Path prefix (optional): subfolder inside the bucket, like audio/
  4. Save.

Step 4: Test

Generate audio for a new post. Check your S3 bucket - you should see the new file there.

Optional: CloudFront CDN

For faster delivery to global visitors, put CloudFront in front of your S3 bucket.

  1. AWS Console → CloudFront → Create distribution.
  2. Origin: your S3 bucket.
  3. Viewer protocol policy: Redirect HTTP to HTTPS.
  4. Create.
  5. Copy the CloudFront domain (like d1234abcd.cloudfront.net).
  6. In TTSWP Cloud audio storage settings, set CDN URL to your CloudFront domain.
  7. Save.

New audio files are served from CloudFront. Existing files are migrated on next play.

Costs

TTSWP-managed cloud

Included in your paid plan. No extra cost per GB.

Your own S3

Billed by AWS. Typical costs for a 1,000-post site:

  • Storage: ~$0.01 per month per GB (cheap)
  • Bandwidth: ~$0.09 per GB of audio served (adds up if you get heavy plays)
  • CloudFront: ~$0.085 per GB served (similar)

Most blogs stay under $1-2 per month. Heavy-traffic podcasts can reach $20-50 per month.

Migrating from local to cloud

After enabling cloud storage, new audio is uploaded to S3. Existing audio stays on your WordPress server until you regenerate it.

Bulk migration tool: Tools → Audio Library → Migrate to cloud (PRO).

Disabling cloud storage

Turn the toggle off. New audio saves to your WordPress server. Existing cloud audio stays on S3 (you can delete or keep it).