---
title: "Video CDN With S3 or Object Storage as Origin: Setup Guide"
description: "How to use S3 or other object storage as a video CDN origin: bucket layout, access control, cache rules for segments and cutting egress costs."
image: https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Oct-23-2026-07-00-43-4400-AM.jpeg
---

[![BlazingCDN](https://blog.blazingcdn.com/hubfs/Logo/blog-logo-w.png)](https://blog.blazingcdn.com?hsLang=en-us)

[📘Learn ▾](https://blog.blazingcdn.com/cdn-learn?hsLang=en-us)

[CDN Fundamentals](https://blog.blazingcdn.com/cdn-fundamentals?hsLang=en-us) [By Content Type](https://blog.blazingcdn.com/by-content-type?hsLang=en-us) [Advanced Concepts](https://blog.blazingcdn.com/advanced-concepts?hsLang=en-us) [Glossary](https://blog.blazingcdn.com/glossary?hsLang=en-us)

[⚡ Web Performance](https://blog.blazingcdn.com/web-performance?hsLang=en-us)

[🎬Video & Streaming ▾](https://blog.blazingcdn.com/video-streaming-cdn?hsLang=en-us)

[🔴 Live Streaming](https://blog.blazingcdn.com/live-streaming?hsLang=en-us) [📺 VOD & OTT](https://blog.blazingcdn.com/vod-ott?hsLang=en-us) [💰 Bandwidth & Costs](https://blog.blazingcdn.com/bandwidth-costs?hsLang=en-us)

[🏭 Other Industries ▾](https://blog.blazingcdn.com/cdn-industry-insights?hsLang=en-us)

[📺 Media & Broadcasting](https://blog.blazingcdn.com/media-broadcasting?hsLang=en-us) [💾 Software & SaaS](https://blog.blazingcdn.com/software-saas?hsLang=en-us) [🏗️ DevOps & Cloud Infra](https://blog.blazingcdn.com/devops-cloud-infra?hsLang=en-us) [📚 AdTech & Advertising](https://blog.blazingcdn.com/adtech-advertising?hsLang=en-us) [🎮 Gaming & Esports](https://blog.blazingcdn.com/gaming-esports?hsLang=en-us) [📱 Mobile Apps & Developers](https://blog.blazingcdn.com/mobile-apps-developers?hsLang=en-us) [🤖 AI & Machine Learning](https://blog.blazingcdn.com/ai-machine-learning?hsLang=en-us) [🏛️ Enterprise & Corporate](https://blog.blazingcdn.com/enterprise-corporate?hsLang=en-us) [📚 E-Learning & EdTech](https://blog.blazingcdn.com/e-learning-edtech?hsLang=en-us) [🏟️ Sports & Live Events](https://blog.blazingcdn.com/sports-live-events?hsLang=en-us)

[💰 Pricing & Costs ▾](https://blog.blazingcdn.com/cdn-pricing-and-cdn-costs?hsLang=en-us)

[Provider Pricing](https://blog.blazingcdn.com/provider-pricing?hsLang=en-us) [Cost Optimization](https://blog.blazingcdn.com/cost-optimization?hsLang=en-us) [Decision Support](https://blog.blazingcdn.com/decision-support?hsLang=en-us)

[⚡Compare ▾](https://blog.blazingcdn.com/cdn-comparison?hsLang=en-us)

[Provider Comparisons](https://blog.blazingcdn.com/provider-comparisons?hsLang=en-us) [Strategy Comparisons](https://blog.blazingcdn.com/strategy-comparisons?hsLang=en-us) [Ratings & Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?hsLang=en-us)

[📊 Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?hsLang=en-us)

[🔒 Security ▾](https://blog.blazingcdn.com/cdn-security?hsLang=en-us)

[Attack Protection](https://blog.blazingcdn.com/attack-protection?hsLang=en-us) [Encryption & Access](https://blog.blazingcdn.com/encryption-access?hsLang=en-us) [Video & DRM Security](https://blog.blazingcdn.com/video-drm-security?hsLang=en-us)

[📁 Case Studies](https://blog.blazingcdn.com/case-studies?hsLang=en-us) [🔌 Integrations](https://blog.blazingcdn.com/integrations?hsLang=en-us) [🛠️ Tools](https://blog.blazingcdn.com/cdn-tools?hsLang=en-us)

[Get Started](https://blazingcdn.com/sign-up-contact-form/)

[Learn](https://blog.blazingcdn.com/en-us/tag/learn) [Video - VOD & OTT](https://blog.blazingcdn.com/en-us/tag/video-vod-ott) [Learn - CDN Fundamentals](https://blog.blazingcdn.com/en-us/tag/learn-cdn-fundamentals) [DevOps & Cloud Infra](https://blog.blazingcdn.com/en-us/tag/devops-cloud-infra)

# Video CDN With S3 or Object Storage as Origin: Setup Guide

 Vadym Borovskyi  Oct 23, 2026, 9:03:59 AM

![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Oct-23-2026-07-00-43-4400-AM.jpeg)

Serving video straight out of a bucket is the most expensive way to run an object storage CDN setup. At Amazon S3's published 2025 US East rates, 200 TB of monthly delivery costs about $13,800 in internet egress alone. A CDN in front, with versioned immutable segments, short-lived playlists, a locked origin and an origin shield, cuts origin reads to a few percent of delivered bytes. This playbook covers the setup in nine steps, a cache rule matrix for playlists and segments, origin access control, validation, rollback and the egress math for finance. Budget about two hours for a VOD bucket if your packager already writes HLS or DASH.

At Amazon S3's published 2025 rates for US East, delivering 200 TB a month directly from a bucket costs roughly $13,800 in data transfer. With a CDN reaching a 96 percent cache hit ratio, origin egress falls to about 8 TB, or roughly $720 at the first-tier rate of $0.09 per GB.

## **Object storage CDN prerequisites**

- An S3 or S3-compatible bucket you control, plus IAM rights to edit bucket policies and keys.
- Packaged HLS or DASH output (fMP4/CMAF or MPEG-TS segments plus playlists). Transcoding happens upstream; the CDN only delivers.
- A CDN account that can authenticate to S3 origins or supports an origin shield.
- Infrastructure as code (Terraform or similar) for the bucket, policy and CDN zone, so every change below can be reverted.

## **How to set up an S3 video CDN in nine steps**

1. **Create one bucket per workload.** Keep VOD and live in separate buckets or at least separate CDN origins, in a region near your packager. Enable Block Public Access and default encryption at rest. Why: if you pick SSE-KMS, enable S3 Bucket Keys, otherwise every cache miss also bills a KMS request.
2. **Lay out keys for immutability.** Use a pattern such as vod/TITLE\_ID/v3/1080p/seg\_000123.m4s (TITLE\_ID is your catalog identifier). Why: a version in the path means segments never change, so they cache for a year and are never purged. S3 scales to at least 5,500 GET requests per second per partitioned prefix, and title-level prefixes spread load.
3. **Write Cache-Control and Content-Type at upload.** S3 returns whatever metadata is stored. Why: many upload tools guess MIME types from extensions and label .m3u8 and .m4s files as binary, which breaks some players.
4. **Close the bucket to everyone except the CDN.** Details in the origin access section below.
5. **Point the CDN at the regional REST endpoint**, not the static website endpoint. Why: website endpoints serve HTTP only and bypass IAM-signed access.
6. **Build a lean cache key.** Path only, cookies ignored, query strings stripped except tokens validated at the edge. Why: a per-viewer token in the key turns every segment request into a miss.
7. **Enable origin shield and request coalescing** in one location close to the bucket region. Why: without a shield every edge misses independently; with coalescing, a thousand concurrent requests for a fresh live segment become one origin GET.
8. **Turn on signed URLs or tokens** at the edge, plus geo rules where licensing requires them.
9. **Add lifecycle rules.** Move VOD renditions untouched for 30 days to S3 Intelligent-Tiering or Standard-IA and expire superseded versions. Why: behind a high-hit CDN, origin reads are rare, so retrieval fees rarely bite. Never move playable objects to Glacier Flexible Retrieval or Deep Archive, which require a restore before any GET succeeds.

## **Recommended cache rules for playlists vs segments**

Playlists change and segments do not. Give segments a one-year immutable TTL, VOD playlists minutes, and live playlists about half the target segment duration. Negative-cache live 404s for one or two seconds only, and keep encryption keys out of shared caches.

| Object | Cache-Control at origin | Edge behavior | Content-Type |
| --- | --- | --- | --- |
| VOD playlists (.m3u8, .mpd) | max-age=300 | 5 to 60 minutes; purge on republish | application/vnd.apple.mpegurl or application/dash+xml |
| VOD segments and init segments | max-age=31536000, immutable | 1 year; never purged | video/mp4 (fMP4) or video/mp2t (TS) |
| Live media playlists | max-age=1 to 3 | Half the target duration; LL-HLS delivery directives kept in the cache key | Same as VOD playlists |
| Live segments | max-age=86400 | At least the DVR window | Same as VOD segments |
| 404 and 403 on live paths | max-age=1 | 1 to 2 second negative cache | n/a |
| AES-128 keys, DRM license calls | private, no-store | Bypass shared cache | application/octet-stream |

Only playlists need short TTLs or purges; every segment behind a versioned path should cache for a year.

This corrects a common rule of thumb: "short TTLs for live segments" is wrong. A live segment never changes once published, so a short TTL only adds origin load. The live playlist is what must stay fresh.

## **Origin access control for a CDN origin on object storage**

Lock a CDN origin on object storage by blocking all public access and granting read permission only to the CDN's identity. On Amazon CloudFront that is Origin Access Control (OAC), which signs origin requests with SigV4 and is scoped by a bucket policy condition on the distribution ARN. With other CDNs, use a dedicated read-only key that signs origin requests.

OAC replaces the legacy Origin Access Identity (OAI) and, unlike OAI, works with SSE-KMS objects. For any CDN, scope the key to s3:GetObject on one prefix. Without s3:ListBucket, missing keys return 403 instead of 404, which matters for live paths where players request segments slightly early.

IP allowlists keyed on aws:SourceIp break whenever the CDN's address ranges change. A shared secret header checked through an aws:Referer condition is defense in depth, not authentication.

## **Push, pull or origin shield for video delivery**

Pull is the default for VOD: the CDN fetches on demand and caches at the edge. Push or replication puts the library into CDN storage and removes the bucket from the delivery path, which suits catalogs with flat, long-tail demand. An origin shield sits between both patterns and the bucket and absorbs repeated misses during spikes. For deeper treatment, the [**video streaming CDN articles on origin shield design**](https://blog.blazingcdn.com/video-streaming-cdn?hsLang=en-us) cover it separately.

Live needs more: a separate origin, encoders writing to two buckets in different regions, CDN origin failover, cache warm-up before scheduled events, and a written runbook for encoder failure.

## **Egress cost math: 200 TB a month from object storage**

Assumptions: 200 TB delivered, 50 TB library, 1 TB counted as 1,000 GB, and a 96 percent CDN hit ratio. Storage is identical in every row, so it is excluded. Direct S3 egress at published 2025 rates: 10 TB at $0.09 per GB ($900), 40 TB at $0.085 ($3,400), 100 TB at $0.07 ($7,000) and 50 TB at $0.05 ($2,500), totaling $13,800.

| Setup | Monthly cost at 200 TB | Billing model | Caveat |
| --- | --- | --- | --- |
| Zero-egress S3-compatible store plus BlazingCDN | $765 | Progressive per-TB tiers, no request fees | Zero-egress stores attach fair-use ratios to stored volume |
| Amazon S3 plus BlazingCDN | About $1,485 ($765 plus about $720 origin egress) | Same, plus S3 egress on misses | No HTTP/3; keep your WAF |
| Amazon S3 plus Amazon CloudFront Premium | $3,500 | Flat-rate plan | Plan allowances apply |
| Amazon S3 plus Amazon CloudFront pay as you go | $11,965 for transfer | Per-GB, regional rates | Request fees extra |
| Amazon S3 direct to viewers | About $13,800 | Per-GB egress tiers | GET fees extra, no edge caching |

At 200 TB a month the delivery layer, not storage, sets the bill, with roughly an 18x spread between the cheapest and most expensive rows.

BlazingCDN publishes this blog, so verify these numbers on your own traffic; the 14-day testing period exists for that. CDN figures come from published price lists, checked August 2026.

Amazon CloudFront has a genuine advantage for all-AWS stacks: S3-to-CloudFront transfer carries no charge and OAC is native, so the $720 origin line disappears. BlazingCDN does not support HTTP/3 and sells no WAF or DDoS mitigation, so it runs beside your existing security stack. To rerun the math with your own hit ratio and volume, the [**CDN cost calculator for video egress**](https://blazingcdn.com/cdn-cost-calculator/) applies the same tiers.

As of October 2026, BlazingCDN bills delivery on progressive tiers from $5 per TB down to $2.50 per TB at volume, with one rate for US, Europe and Asia and no request fees, so 200 TB a month costs $765. Current rates are on the BlazingCDN pricing page.

At larger scale, 1,200 TB a month on those tiers works out to $3,315 plus 200 TB at $2.50, or $3,815, though volumes above 500 TB are individually quoted. The same volume served directly from S3 costs about $63,800. Replicating the 50 TB library into the BlazingCDN Video CDN costs $0.02 per GB per month after the included 500 GB, about $990, and removes origin egress entirely.

## **Validate the setup**

- Request one VOD segment through the CDN hostname twice. The second response should carry a non-zero Age header, your CDN's HIT status header, "max-age=31536000, immutable" and the correct Content-Type.
- Request the same key at the bucket endpoint without credentials. Expect 403.
- Check the master playlist's Content-Type: application/vnd.apple.mpegurl.
- Enable S3 request metrics and watch GetRequests and BytesDownloaded. Within a day, VOD origin bytes should be a few percent of CDN-delivered bytes.
- Track player QoE at p95 and p99, not averages: time to start, rebuffer ratio, throughput, latency by region, errors by device. This blog suggests starting SLOs of p95 startup under 2 to 3 seconds and rebuffering under 1 percent of watch time.

## **Diagnostics and rollback**

- **Players reject the manifest:** Content-Type stored as binary. Fix with an in-place copy that replaces metadata, then purge playlists.
- **Edge returns 403 after lockdown:** wrong regional endpoint, a policy condition that does not match the distribution, or a KMS key policy that denies the CDN role.
- **Live playback stalls:** playlist TTL too long, or a cached 403 or 404 for a segment requested early. Cap negative caching at 1 to 2 seconds.
- **Segment hit ratio under 90 percent:** session tokens or cookies in the cache key.
- **Origin bill unchanged:** shield disabled, so every edge location misses on its own.
- **503 SlowDown from S3:** request rate on one prefix too high. Spread prefixes and enable coalescing.

Rollback: keep the previous hostname live and shift traffic back with weighted DNS. Keep the prior bucket policy version in IaC so reverting is one apply. Purge manifests, never segments; versioned segment paths make segment purges unnecessary.

## **Security and operations checklist**

- HTTPS end to end, tokenized URLs or signed cookies, DRM for premium titles, encryption at rest, geo rules, automated key rotation, and a WAF from your security vendor.
- Separate live and VOD origins, with regional shielding.
- Manage buckets, IAM, CDN zones and policies in Terraform; automate manifest invalidation and integration tests in CI.
- Stream CDN logs to monitoring and alert on startup time, stalls, cache misses, 5xx rates and regional concurrency spikes.
- Maintain origin failover or a second CDN, and keep capacity headroom for unplanned peaks.

## **FAQ: object storage CDN for video**

### How do I choose object storage for video on demand?

Choose object storage for video on demand on four criteria: durability, data sovereignty, S3 API compatibility and egress pricing. Egress usually dominates once delivery volume exceeds library size, so check per-GB origin rates, fair-use ratios on zero-egress stores, and whether your CDN can authenticate to the store with SigV4.

### Can I use a non-AWS CDN with an Amazon S3 origin?

Yes, any CDN can pull from Amazon S3 through the regional REST endpoint. Keep the bucket private and give the CDN a read-only key scoped to one prefix if it supports signed S3 origin requests. Without that support, IP allowlists or secret headers work, but both are weaker than signed access.

### What cache TTL should HLS playlists and segments get on an object storage CDN?

Give HLS segments a one-year immutable TTL behind versioned paths, VOD playlists five to sixty minutes, and live playlists about half the target segment duration. Live segments are immutable too, so cache them for at least the DVR window and keep negative caching on live paths to one or two seconds.

### Does an origin shield reduce S3 egress costs for video?

Yes, an origin shield reduces S3 egress by collapsing misses from every edge location into one fetch per object. Combined with request coalescing, a popular new live segment triggers a single origin GET instead of one per edge. The effect grows with edge count and with long-tail VOD catalogs.

### What does an S3 video CDN cost at 200 TB a month?

An S3 video CDN at 200 TB a month costs about $1,485 with BlazingCDN as of October 2026: $765 for delivery on progressive tiers with no request fees, plus roughly $720 of S3 egress at a 96 percent hit ratio. Serving the same 200 TB directly from S3 costs about $13,800 at published 2025 rates.

## **Measure your origin-to-edge ratio this week**

Pull 30 days of S3 BytesDownloaded and your CDN's delivered bytes, then split both by object class: playlists, segments, keys. If segments miss more than 5 percent of the time, inspect the cache key for tokens and confirm the shield is active. Then multiply delivered TB by each candidate's published rate and origin misses by your storage provider's egress price. That two-line model will tell you whether the CDN or the bucket is driving the invoice.

If your catalog fits a replicated model, the [**BlazingCDN Video CDN for object storage libraries**](https://blazingcdn.com/video-cdn/) keeps the library inside the CDN, and a 14-day testing period at $5 per TB lets you repeat this measurement on real segments.

Share: [f](https://www.facebook.com/sharer/sharer.php?u=https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained) [in](https://www.linkedin.com/sharing/share-offsite/?url=https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained) [𝕏](https://twitter.com/intent/tweet?url=https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained&text=) [✉](mailto:?subject=%3Cspan%20id="hs_cos_wrapper_name"%20class="hs_cos_wrapper%20hs_cos_wrapper_meta_field%20hs_cos_wrapper_type_text"%20style=""%20data-hs-cos-general-type="meta_field"%20data-hs-cos-type="text"%20%3EVideo%20CDN%20With%20S3%20or%20Object%20Storage%20as%20Origin:%20Setup%20Guide%3C/span%3E&body=https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained)

![BlazingCDN](https://blog.blazingcdn.com/hs-fs/hubfs/Logo/blog-logo-w.png?height=24&name=blog-logo-w.png)

*Heavy traffic.*  
Light bill.

The CDN for video and large traffic

Their monthly bill vs ours

- 20 TBFastly $2,087**$92.50**
- 50 TBCDN77 $990**$215**
- 200 TBCloudFront $11,965**$765**

Published list prices, Aug 2026

[Calculate your cost](https://blazingcdn.com/cdn-cost-calculator/?utm_source=blog&utm_medium=sidebar&utm_campaign=blog_sidebar&utm_content=compare_calc)

## Related posts

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Oct-22-2026-07-30-18-6643-AM.jpeg)](https://blog.blazingcdn.com/en-us/video-aspect-ratios-explained-16-9-9-16-and-1-1?hsLang=en-us)

Learn

### [Video Aspect Ratios Explained: 16:9, 9:16 and 1:1](https://blog.blazingcdn.com/en-us/video-aspect-ratios-explained-16-9-9-16-and-1-1?hsLang=en-us)

A video aspect ratio is the proportion between a frame's displayed width and its displayed height, written as ...

Oct 22, 2026, 9:32:08 AM [Read more](https://blog.blazingcdn.com/en-us/video-aspect-ratios-explained-16-9-9-16-and-1-1?hsLang=en-us)

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Oct-22-2026-07-00-44-8612-AM.jpeg)](https://blog.blazingcdn.com/en-us/cloud-video-platform-and-cloud-video-streaming-a-guide-for-modern-media-2024?hsLang=en-us)

Learn

### [Cloud Video Streaming Platforms: How They Work and What to Choose](https://blog.blazingcdn.com/en-us/cloud-video-platform-and-cloud-video-streaming-a-guide-for-modern-media-2024?hsLang=en-us)

Cloud video streaming moves video through four managed stages: ingest, transcoding into an adaptive bitrate ladder, ...

Oct 22, 2026, 9:02:53 AM [Read more](https://blog.blazingcdn.com/en-us/cloud-video-platform-and-cloud-video-streaming-a-guide-for-modern-media-2024?hsLang=en-us)

[![BlazingCDN](https://blog.blazingcdn.com/hubfs/Logo/blog-logo-w.png)](https://blog.blazingcdn.com?hsLang=en-us)

[📘 Learn](https://blog.blazingcdn.com/cdn-learn?hsLang=en-us) [📊 Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?hsLang=en-us) [🎬 Video & Streaming](https://blog.blazingcdn.com/video-streaming-cdn?hsLang=en-us) [🏭 Industries](https://blog.blazingcdn.com/cdn-industry-insights?hsLang=en-us) [💰 Pricing & Costs](https://blog.blazingcdn.com/cdn-pricing-and-cdn-costs?hsLang=en-us) [⚡ Compare](https://blog.blazingcdn.com/cdn-comparison?hsLang=en-us) [🔒 Security](https://blog.blazingcdn.com/cdn-security?hsLang=en-us) [🛠️ Tools](https://blog.blazingcdn.com/cdn-tools?hsLang=en-us) [✍️ Publish with us](https://blog.blazingcdn.com/publish-with-us?hsLang=en-us)

in f 𝕏 ✉

 Copyright © BlazingCDN |. All rights reserved.

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blazingcdn.com/#organization",
  "@type" : "Organization",
  "description" : "High-volume CDN for video, live streaming, OTT/IPTV, software, games, SaaS and large-file delivery.",
  "logo" : {
    "@id" : "https://blazingcdn.com/#logo",
    "@type" : "ImageObject",
    "height" : 560,
    "url" : "https://blazingcdn.com/wp-content/uploads/2024/08/logo-560-560.png",
    "width" : 560
  },
  "name" : "BlazingCDN",
  "sameAs" : [ "https://www.linkedin.com/company/blazingcdn", "https://x.com/BlazingCdn", "https://www.reddit.com/r/BlazingCDN/", "https://www.wikidata.org/wiki/Q141711074" ],
  "url" : "https://blazingcdn.com/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/#website",
  "@type" : "WebSite",
  "inLanguage" : "en-US",
  "name" : "BlazingCDN Blog",
  "publisher" : {
    "@id" : "https://blazingcdn.com/#organization"
  },
  "url" : "https://blog.blazingcdn.com/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained#article",
  "@type" : "BlogPosting",
  "author" : {
    "@id" : "https://blog.blazingcdn.com/en-us/author/blazingcdn#person",
    "@type" : "Person",
    "description" : "Vadym Borovskyi is Chief Product and Marketing Officer at BlazingCDN, where he has led product strategy and growth since 2021. He has more than 11 years of experience in IT product management and B2B marketing. On this blog he writes about CDN pricing and egress costs, video and software delivery, cache configuration, and how teams evaluate and switch CDN providers. He is based in Warsaw, Poland.",
    "image" : "https://143144902.fs1.hubspotusercontent-eu1.net/hubfs/143144902/vadym-borovskyi.jpg",
    "jobTitle" : "Chief Product and Marketing Officer",
    "knowsAbout" : [ "Content Delivery Networks (CDN)", "CDN pricing", "Video streaming delivery", "Software and game distribution", "Cache optimization", "Product Management", "B2B Marketing", "Digital Marketing", "Pay Per Click Marketing (PPC)", "Google Ads", "Search Engine Marketing (SEM)", "Marketing Strategy", "Artificial Intelligence (AI)", "Cloud Management", "SaaS Development", "IT Consulting", "Computer Networking", "Project Management", "Startups" ],
    "name" : "Vadym Borovskyi",
    "sameAs" : [ "https://www.linkedin.com/in/axelt/" ],
    "url" : "https://blog.blazingcdn.com/en-us/author/blazingcdn",
    "worksFor" : {
      "@id" : "https://blazingcdn.com/#organization"
    }
  },
  "dateModified" : "2026-10-23T07:03:59Z",
  "datePublished" : "2026-10-23T07:03:59Z",
  "description" : "How to use S3 or other object storage as a video CDN origin: bucket layout, access control, cache rules for segments and cutting egress costs.",
  "headline" : "Video CDN With S3 or Object Storage as Origin: Setup Guide",
  "image" : "https://143144902.fs1.hubspotusercontent-eu1.net/hubfs/143144902/Gemini-Blog/image-Oct-23-2026-07-00-43-4400-AM.jpeg",
  "inLanguage" : "en-us",
  "isPartOf" : {
    "@id" : "https://blog.blazingcdn.com/#website"
  },
  "mainEntityOfPage" : {
    "@id" : "https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@id" : "https://blazingcdn.com/#organization"
  },
  "wordCount" : 2336
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained#breadcrumb",
  "@type" : "BreadcrumbList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : "https://blog.blazingcdn.com/en-us",
    "name" : "Blog",
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : "https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained",
    "name" : "Video CDN With S3 or Object Storage as Origin: Setup Guide",
    "position" : 2
  } ]
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained#faq",
  "@type" : "FAQPage",
  "mainEntity" : [ {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Choose object storage for video on demand on four criteria: durability, data sovereignty, S3 API compatibility and egress pricing. Egress usually dominates once delivery volume exceeds library size, so check per-GB origin rates, fair-use ratios on zero-egress stores, and whether your CDN can authenticate to the store with SigV4."
    },
    "name" : "How do I choose object storage for video on demand?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Yes, any CDN can pull from Amazon S3 through the regional REST endpoint. Keep the bucket private and give the CDN a read-only key scoped to one prefix if it supports signed S3 origin requests. Without that support, IP allowlists or secret headers work, but both are weaker than signed access."
    },
    "name" : "Can I use a non-AWS CDN with an Amazon S3 origin?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Give HLS segments a one-year immutable TTL behind versioned paths, VOD playlists five to sixty minutes, and live playlists about half the target segment duration. Live segments are immutable too, so cache them for at least the DVR window and keep negative caching on live paths to one or two seconds."
    },
    "name" : "What cache TTL should HLS playlists and segments get on an object storage CDN?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "Yes, an origin shield reduces S3 egress by collapsing misses from every edge location into one fetch per object. Combined with request coalescing, a popular new live segment triggers a single origin GET instead of one per edge. The effect grows with edge count and with long-tail VOD catalogs."
    },
    "name" : "Does an origin shield reduce S3 egress costs for video?"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "An S3 video CDN at 200 TB a month costs about $1,485 with BlazingCDN as of October 2026: $765 for delivery on progressive tiers with no request fees, plus roughly $720 of S3 egress at a 96 percent hit ratio. Serving the same 200 TB directly from S3 costs about $13,800 at published 2025 rates."
    },
    "name" : "What does an S3 video CDN cost at 200 TB a month?"
  } ]
}
```