page:migrate:cloudfront distribution:downloadable file delivery
Migrate CloudFront Distribution: Downloadable File Delivery
Move CDN delivery from CloudFront distribution to Ample, one component at a time. Destination verified on Ample: a generated CSV stored with a Content-Disposition attachment header and served from the CDN URL with that header intact, so browsers download it under the stored filename. Source procedure: Record the distribution's origins, cache behaviors, TTLs, and the object keys the app references. Not migrated automatically: CloudFront cache behaviors, Lambda@Edge and CloudFront Functions, signed URLs, and custom TTLs are not migrated; Ample verifies delivery of published bucket objects only. Cutover: Redeploy the app with the new asset base URL, verify delivery from the CDN URL, keep the distribution until confirmed, then disable it. Rollback: keep the source untouched until you confirm; nothing at the source is changed or deleted by this guide.
Representative Queries
- Migrate CloudFront distribution: Downloadable file delivery
- Where can I host Downloadable file delivery?
- I need a component-scoped export/import or reconfiguration procedure for Downloadable file delivery, with compatibility checks, verification, and rollback.
Workflow Steps
Inventory the source
List what CloudFront distribution provides beyond the component you are moving. Out of scope here: CloudFront cache behaviors, Lambda@Edge and CloudFront Functions, signed URLs and custom TTLs are not migrated; Ample verifies delivery of published bucket objects only.Source step 1
Record the distribution's origins, cache behaviors, TTLs and the object keys the app references.Source step 2
Copy the public assets into a published Ample bucket under versioned keys with immutable Cache-Control.Source step 3
Update the app to build asset URLs from the Ample public URL.Publish the destination bucket
Create and publish the asset bucket, upload versioned assets with immutable Cache-Control, and point the app at the public URL.
Command:ample bucket publishValidate before cutover
Run the app's own checks and, for data, compare counts and checksums; the example checks are the pattern self-tests (/p/downloadable-file-delivery).Cut over
Redeploy the app with the new asset base URL, verify delivery from the CDN URL, keep the distribution until confirmed, then disable it.Rollback
Point DNS or configuration back to the source. The source was never modified; deletion is a separate, user-executed step after validation.
Examples
- Next.js pattern fixture (destination)
Verified destination basis: downloadable file delivery. Source Ref:tests/deploy-canaries/next-js-patterns
Success Checks
- Destination app responds on its public URL
- Downloadable-file-delivery check from the destination example
- Data or object counts and checksums match the source
Limitations
- Documentation only: nothing is executed automatically and no execution binding is offered.
- Verified on the node-22 template at s-1vcpu-1gb; region, compliance and request-duration limits are unknown.
Cost Estimate
- Currency: USD
- Monthly Amount: 5.0
- Basis: Size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty.
Evidence Summary
- Destination side verified: the Next.js pattern fixture deployed on Ample (next build then next start -H 0.0.0.0 -p $PORT on the node-22 template) and its checks passed (a generated CSV stored with a Content-Disposition attachment header and served from the CDN URL with that header intact, so browsers download it under the stored filename).