Editorial cover — two frosted-glass storage towers on a navy field, objects streaming left to right along a light beam from the AWS tower into the Alibaba Cloud tower, an amber verification gate on the beam; the AWS mark floats upper right and the left half stays clear for the title.

The CloudFront China Exit Method: S3 Static Sites to OSS + CDN

We rehearsed the full CloudFront China exit on live accounts — CDN front, S3-to-OSS migration, private origin auth, cache refresh — and verified it by byte parity between both endpoints.

Method 10 min read aws, alibaba-cloud, cdn, oss, migration, cloudfront

Frequently asked questions

Can I still create a new CloudFront distribution in the China partition?

Not on an account that never used CloudFront there. Our test account — zero prior distributions — attempted CreateDistribution five times across roughly ten minutes with a valid configuration, and every attempt returned Throttling (rate exceeded) while read APIs stayed healthy; a no-alias control run throttled identically. The official cutoff for new customers passed on September 30, 2026, and existing distributions stop working on May 31, 2027. Treat the API as closed to new tenants and plan the exit, not the exception.

Does object metadata survive the S3-to-OSS copy?

Content-Type and Cache-Control did, in our rehearsal, on every object — verified by comparing response headers on both sides with signed reads. ETags do not survive: the migration path recomputes them, so reconciliation belongs to content checksums or byte comparison, never to ETag matching.

Why does the root path on the migrated site need an explicit /index.html?

Under authorized origin fetches, a request for the bare slash is interpreted by the object store as a list-bucket call, so the bucket's index-document setting never engages and the edge returns 403. Error documents behave correctly. The fixes are an edge rewrite of the slash to the index key, a public-read website configuration if your content model allows it, or explicit index links — the same trade-off CloudFront's default-root-object setting used to absorb.

How quickly do cache refreshes take effect?

The CDN's documented ceiling is five to six minutes for full propagation. In the rehearsal, object-level and directory-level refreshes both produced a forced revalidation within about thirty seconds, visible as TCP_REFRESH_MISS on the next request and a return to memory hits on the one after.

Is the live demo still running?

Yes. Both endpoints are public — the CDN-fronted S3 origin and the migrated OSS + private-origin CDN serve byte-identical pages, so you can compare response headers and content yourself. Links appear in the article body.

Tell us where you are stuck in China.

Share your product, stack, and timeline — we will point you to the next concrete step.