This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

How Spaces is billed

DigitalOcean's Spaces pricing documentation, read on 30 October 2026, describes one subscription per account. Billing starts when you create your first bucket and stops when you destroy the last one, prorated hourly. The allowance is pooled: 250 GiB of Standard storage and 1,024 GiB of outbound transfer across every bucket. Inbound uploads are free. Transfer from Spaces to Droplets in listed region pairs is free, and so is private traffic through the VPC-local resolver.

The CDN is included at no extra cost, but DigitalOcean says transfer between the origin and edge servers counts toward your allowance. The documentation does not spell out how bytes delivered from edge to viewer are counted, so the examples below assume every download counts, which is the conservative case.

ItemPrice or allowance
Subscription$5.00 per month
Included Standard storage250 GiB across all buckets
Additional storage$0.02 per GiB per month
Included outbound transfer1,024 GiB, shared by all buckets
Additional outbound transfer$0.01 per GiB
Inbound transferFree
CDNIncluded; origin-to-edge transfer counts toward the allowance
Cold Storage$0.007 per GiB; 30-day minimum; no CDN; 128 KiB minimum per read

Monthly cost for three course libraries

Hypothetical libraries, priced with the rates above and assuming all downloads count as outbound transfer once. If protected files are fetched through presigned URLs on the CDN hostname, DigitalOcean warns the bandwidth charge may double, so test with real traffic before relying on these figures.

LibraryStoredDownloaded per monthCalculationMonthly
Workbook and audio course80 GiB600 GiBInside both allowances$5.00
Video course, 300 active learners400 GiB2,000 GiB$5 + 150 x $0.02 + 976 x $0.01$17.76
Large catalogue1,000 GiB5,000 GiB$5 + 750 x $0.02 + 3,976 x $0.01$59.76

Private versus public files

DigitalOcean's file permission documentation says files in a bucket are Private by default. A Public file's URL does not expire and works for anyone who has it; making the file Private later stops that URL working. Private files are shared through presigned links: the control panel's Quick Share offers 1 hour, 6 hours, 1 day, 3 days or 7 days, and the AWS CLI or Boto3 can set a lifetime in seconds.

Here is the trade-off. The Spaces limits page and CDN guide both say requests made with presigned URLs are not cached by the Spaces CDN; you can use the CDN hostname for consistency, but there is no latency or cache benefit, and the limits page adds that presigned-URL transfers may double the bandwidth charge. So you choose between public files that the CDN caches but anyone with the link can share, and private files that stay protected but are always served from the origin bucket.

A sensible split for a course: keep paid workbooks, source files and full-length lesson videos private and generate short-lived links from WordPress only for enrolled learners; put free previews, thumbnails and marketing assets in public files behind the CDN.

Limits that affect video

  • A single PUT upload can be up to 5 GB; larger files need multipart upload with parts between 5 MiB and 5 GB, up to 10,000 parts and 5 TB in total.
  • Multipart uploads and PUTs sent to the CDN hostname with presigned URLs are limited to 8,100 KiB of payload, so upload large files to the origin endpoint.
  • New buckets support 800 total operations per second; DigitalOcean recommends the CDN above 400 read requests per second.
  • Incomplete multipart uploads older than 30 days are deleted automatically.
  • Objects are billed with a 4 KiB minimum, and early client disconnects may be billed up to the full object size, which matters for video that viewers abandon.
  • Accounts can have up to 100 buckets and 200 access keys.

Setting it up

Create the bucket in a region DigitalOcean lists as a free-transfer pair for your Droplet (its example: SFO2 Spaces to Droplets in SFO1, SFO2 and SFO3). Enable the CDN when creating the bucket or later under Settings > CDN; the default edge cache TTL is 1 hour, and longer TTLs speed delivery but delay updates when you replace a file. A custom subdomain needs an SSL certificate: DigitalOcean can issue a free Let's Encrypt certificate only if your DNS is managed at DigitalOcean; otherwise upload your own certificate and chain.

Spaces stores and delivers files. The pricing and how-to pages we read describe storage, transfer and a CDN, not video encoding or adaptive-bitrate playback, so a lesson video is delivered as the file you upload. For long or high-resolution lessons, compare that with a video host before committing.

Questions before you decide

Is the Spaces CDN an extra cost?

No. DigitalOcean's pricing documentation says the CDN is included at no additional cost, but transfer between the origin and the edge servers counts toward your 1,024 GiB allowance.

Can I protect paid course files on Spaces?

Yes. Files are private by default and can be shared with presigned links that expire. DigitalOcean notes that presigned requests are not cached by the CDN.

What happens if I go over the included transfer?

Additional outbound transfer costs $0.01 per GiB and additional storage $0.02 per GiB per month, on top of the $5 subscription.

How large a video file can I upload?

Up to 5 GB in one PUT request; above that, use multipart upload, which supports up to 10,000 parts and 5 TB per object.

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. DigitalOcean: Spaces Object Storage pricing Accessed 30 Oct 2026
  2. DigitalOcean Docs: Spaces pricing details Accessed 30 Oct 2026
  3. DigitalOcean Docs: Spaces limits Accessed 30 Oct 2026
  4. DigitalOcean Docs: Enable the Spaces CDN Accessed 30 Oct 2026
  5. DigitalOcean Docs: Set file permissions in Spaces Accessed 30 Oct 2026

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.

Your decision at a glance

Compare the options

Full comparison

Documentation-based guidance. No tested ranking or performance score.

Cloud VMs

DigitalOcean

Consider it for
Use a DigitalOcean Droplet when you will administer a cloud VM, not when you need managed WordPress hosting.
Starting cost
Basic Droplet listed from $4.00/mo (512 MiB, 1 vCPU, 10 GiB SSD, 500 GiB transfer) on 2026-09-15; 3 static sites listed free. Confirm live checkout and bandwidth overage.
Before you choose
A listed VM size is not a WordPress or course-capacity claim. You own OS, updates, backups, and mail unless a separate product says otherwise. The static-site free tier is not a course site.

Checked 15 Sep 2026 · Pricing source

View DigitalOcean plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Shared hosting

SiteGround

Consider it for
Use SiteGround StartUp, advertised at $2.99/month for a prepaid first 12 months then $17.99/month, when one WordPress site needs shared hosting rather than a server you administer.
Starting cost
StartUp first-term $2.99/mo prepaid 12 months, renews $17.99/mo on 2026-09-15 (world page: ex. VAT); 1 website, 10GB, ~10,000 visits marketing estimate
Before you choose
Visit marketing estimates are not class concurrency. Renewal is $17.99/mo after the prepaid term. No course-capacity test is claimed.

Checked 15 Sep 2026 · Pricing source

View SiteGround plans

Affiliate link: we may earn a commission on an eligible purchase. Link disclosure