Serverless File Storage

Zero-Infra File Storage for Serverless and Edge Backends

Serverless file storage with automatic scaling and global CDN delivery.

Serverless functions are stateless and short-lived, which makes file handling awkward in ways that bite you in production. A Lambda's /tmp is ephemeral and capped, function execution time is limited, and — the classic trap — any client that holds connections (a database driver, an S3 client with a connection pool) fights the concurrency model, because a thousand simultaneous invocations try to open a thousand pools.

The clean pattern for serverless storage is a stateless HTTP call to an external service, and that is exactly the shape files.link takes. There is no connection pool to warm, no SDK whose cold-start initialization adds latency to the first invocation, and no driver to keep alive between requests — just three HTTP calls: POST /v1/files/{folderId} with your raw API key in the Authorization header returns a presigned URL; PUT the bytes; POST /v1/files/confirm-upload to finalize and get the permanent CDN URL.

There is a serverless-specific optimization hiding in that flow. Because step one returns a presigned URL, your function doesn't have to be the thing that streams the file body at all. A common pattern: a tiny function calls POST /v1/files/{folderId}, returns the presigned URL to the browser, and the browser PUTs the bytes directly — so a large upload never passes through your function, never counts against its execution time or memory, and never risks hitting the API Gateway payload limit.

The function only brokers a short JSON request and the lightweight confirm call. This works from anything that speaks HTTP: AWS Lambda, Google Cloud Functions, Azure Functions, Vercel Functions, Netlify Functions, Cloudflare Workers, Deno Deploy. Edge runtimes that forbid Node built-ins and native modules can't run many storage SDKs at all, but fetch() is always available, so the three-call flow runs at the edge unchanged.

Files are encrypted at rest and move over TLS; private files are gated by signed URLs your function mints per request. And because billing is prepaid credits rather than per-request metering, a function that fans out to high concurrency draws down a balance you control instead of producing a request-count invoice you discover at month end.

Benefits With No Complexity

Global CDN delivery

Your files are served from 450+ edge locations worldwide.

Edge-cached worldwide

Files are cached close to your users for fast delivery.

Signed-URL security

Private files stay protected with time-limited access.

What You Get

Unlimited files

Upload as many files as you need.

Unlimited storage

There is no storage limit.

Public + Private storage

Private files are fully secured.

CDN ready links

Upload directly to 450+ edge locations worldwide.

Prepaid credits

No subscription. Pay only for the storage and bandwidth you use.

More coming soon

We have plenty of features coming!

How files.link Works

1. Upload

Create a project and upload your first file.

2. Copy

Copy the CDN link.

3. Use Anywhere

Paste and enjoy the blazing speed.

Why Developers Choose files.link

A Better Way to Store & Deliver Files

Vercel BlobCloudflare R2Amazon S3files.link
Stateless HTTP upload, no SDK required
No connection pool to manage in functions
Presigned URL for direct-to-browser upload
Runs in edge runtimes (fetch-only)
Built-in CDN delivery
Prepaid credits (no per-request invoice)

Calculate Your Needs

Storage

0GB

Egress

0GB

CDN Bandwidth

0GB
Total: $0.000/month

Start Serverless Storage

  • Global CDN delivery
  • Edge-cached worldwide
  • Signed-URL security
  • Unlimited files
  • Unlimited storage
  • Public + Private storage
  • No subscription — prepaid credits keep spend predictable
Start Serverless Storage

Frequently Asked Questions

Do I need an SDK or driver in my function?
No. files.link is a stateless HTTP service, so you make plain requests with fetch or any HTTP client. There is no SDK whose initialization adds cold-start latency and no driver to keep alive between invocations.
How do I avoid streaming large uploads through my function?
Have the function call POST /v1/files/{folderId} for a presigned URL and return that URL to the browser. The browser PUTs the bytes directly, so the file never passes through your function, never counts against its execution time or memory, and won't hit a gateway payload limit.
Does the connection-pool problem apply here?
No. Pool exhaustion happens when many concurrent invocations each open persistent connections. A stateless HTTP call opens, completes, and closes per request, so high function concurrency doesn't exhaust a pool.
Can I use this from edge runtimes like Cloudflare Workers?
Yes. Edge runtimes often forbid Node built-ins and native modules, which blocks many storage SDKs, but fetch() is always present. The three-call flow runs unchanged at the edge.
How does billing handle a sudden spike in invocations?
files.link bills prepaid credits, not per-request. A function that fans out to high concurrency draws down a balance you set, so you don't discover a large request-count invoice at the end of the month.
General Questions
Is there a subscription?
No. files.link uses prepaid credits, so storage, bandwidth, and API usage are deducted from your balance as you go. The app explains the payment step before uploads are enabled — no monthly subscription and no per-user fees.
What is files.link?
files.link is a developer-first file platform that makes it simple to store, secure, and deliver files globally. It provides signed URLs, public/private access, and an API-first design so you can integrate file delivery into any app without the usual complexity.
How does billing work?
files.link uses prepaid credits. As you use storage, bandwidth, and API requests, credits are deducted daily. When your balance runs low, we automatically recharge it using your saved card. If an auto-recharge doesn't go through, your files and links stay put — you simply update your payment method or top up manually to keep going. No monthly subscriptions — just simple usage-based pricing.
How secure is my data?
All files are encrypted at rest and in transit. You can use signed URLs for private files, control access with permissions, and rely on enterprise-grade infrastructure for data protection.

Related

files.link
Copyright © 2026
All rights reserved
ContactGuidesGlossaryStatusLegal