File Hosting Without AWS
File Hosting Without the AWS Setup Marathon
Skip the access policies, bucket configuration, and CDN distribution setup. files.link is a REST API with built-in CDN.
Standing up file hosting on a raw hyperscaler the first time is a configuration project, not a coding task. Before you write a single line that uploads a file, you create a bucket, decide on a region, turn off public-access blocks (carefully), write a bucket policy or ACL, mint an IAM user with a scoped policy, generate access keys, store them in a secret manager, add a CORS rule so browsers stop throwing opaque preflight errors, then stand up a CDN distribution, point it at the bucket as an origin, lock the origin down with origin access control, request and validate a TLS certificate, and add the DNS records for your custom domain.
Half a day later you can finally serve one PNG. files.link collapses that entire setup phase: you sign up, add a card, create an API key, and the upload + global CDN are already wired together. There is nothing to provision.
The real upload flow is three calls. First, POST /v1/files/{folderId} with your raw API key in the Authorization header (no Bearer prefix) and the filenames you want; the response is { success, urls: [{ url, id, ... }] }. Second, PUT each file's bytes straight to the returned presigned url — that write goes to storage directly, so your server never proxies the payload.
Third, POST /v1/files/confirm-upload with { ids: [...] } to finalize. A curl version of step one looks like: curl -X POST https://files.link/v1/files/FOLDER_ID -H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"files":[{"name":"logo.png"}]}'. No SDK, no credential chain, no region string baked into a config object.
The trade is honest. files.link is a managed service: you do not get to attach a Lambda to an upload event, fan out to SNS, or hang an internal IAM role off an object. If your architecture is deep inside one cloud's event graph, DIY hosting is genuinely the better fit and you should keep it. But for shipping a product where files just need to land somewhere and be served fast over a global CDN, skipping the access-policy-and-distribution marathon is the whole point.
Cost is prepaid credits rather than a metered bill that surprises you at month-end, so you can reason about spend up front instead of decoding a line-item invoice.
Benefits With No Complexity
Global CDN delivery
Edge-cached worldwide
Signed-URL security
What You Get
Unlimited files
Unlimited storage
Public + Private storage
CDN ready links
Prepaid credits
More coming soon
How files.link Works
1. Upload
2. Copy
3. Use Anywhere
Why Developers Choose files.link
A Better Way to Store & Deliver Files
| AWS (DIY S3 + CloudFront) | Cloudflare R2 | Firebase Storage | files.link | |
|---|---|---|---|---|
| No IAM / bucket / policy setup | ||||
| Global CDN wired in by default | ||||
| No CORS rule to configure | ||||
| Upload in 3 REST calls, no SDK required | ||||
| Prepaid credits, predictable spend | ||||
| Native cloud event triggers on upload | ||||
| Drop into underlying storage infra |
Calculate Your Needs
Storage
Egress
CDN Bandwidth
Skip AWS Setup
- Global CDN delivery
- Edge-cached worldwide
- Signed-URL security
- Unlimited files
- Unlimited storage
- Public + Private storage
- No subscription — prepaid credits keep spend predictable