Skip to content

Cloudflare Workers URL Shortener Pattern

The Cloudflare Workers URL Shortener Pattern refers to a specific serverless architecture pattern for building URL shorteners using Cloudflare Workers and Cloudflare KV (Key-Value) storage^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].

This pattern leverages edge computing to deploy a globally distributed service capable of redirecting users with low latency, all within a generous free tier suitable for personal use^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].

Architecture and Components

The architecture typically consists of two main components: the compute layer and the storage layer^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].

  • Compute Layer (Cloudflare Workers): Handles the application logic without managing servers. The Worker typically serves two roles: an API for creating links and a redirect service for consuming them^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].
  • Storage Layer (Cloudflare KV): A distributed Key-Value store used to persist the mapping between short codes and destination URLs^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].

Core Implementation Logic

The logic within the Worker is generally split into two HTTP methods^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md]:

  1. POST (Create): Receives a long URL, generates a unique short code, and saves the pair to KV^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].
  2. GET (Redirect): Receives a short code, queries the KV store for the original URL, and returns a 302 Redirect to that destination^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].

Conflict Handling

A critical part of this pattern is conflict detection. Before saving a new short code, the system must check if the key already exists in the KV store^[001-TODO__Cloudflare_Workers_自架短網址_-10_分鐘完工教學.md]. If the code is taken, the API should return a 409 Conflict status code to prevent accidentally overwriting existing links^[001-TODO__Cloudflare_Workers_自架短網址-_10_分鐘完工教學.md].

Frontend and Deployment

  • UI Delivery: Cloudflare Workers can directly return HTML, allowing developers to bundle a simple frontend interface (input form + copy button) within the same script that handles the API logic^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].
  • Custom Domains: The service is typically bound to a subdomain using Custom Domains in the wrangler configuration or Cloudflare dashboard, which automatically handles DNS and SSL certificates^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].
  • Global Deployment: Using the wrangler CLI, the application is deployed to Cloudflare's global network of over 300 data centers^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].

Constraints and Limitations

This pattern is highly cost-effective for personal projects due to the free tier limits, but it has specific constraints^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md]:

  • KV Write Limits: The free tier allows approximately 1,000 writes per day^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].
  • Read/Request Limits: The free tier allows approximately 100,000 reads and 100,000 requests per day^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].
  • Security: The basic pattern often lacks authentication, meaning anyone with the URL can potentially create short links^[001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md].

Sources

  • 001-TODO__Cloudflare_Workers_自架短網址_-_10_分鐘完工教學.md