Skip to content

Instantly share code, notes, and snippets.

@obezuk
Last active September 7, 2022 07:58
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save obezuk/4394d1b2a1b057af997bab4363e631bc to your computer and use it in GitHub Desktop.
Save obezuk/4394d1b2a1b057af997bab4363e631bc to your computer and use it in GitHub Desktop.
Cloudflare Worker - Link Shortener
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<h1>Cloudflare Workers Link Shortener</h1>
<h2>Create a Link</h2>
<pre>$ curl https://l.obez.uk/?new=https://cloudflare.com</pre>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
@chloeburroughs
Copy link

Sorry for the n00b question, but where in here would you define the KV, and would you use the KV url, namespace ID, or the CNAME for the KV? Thanks!

@obezuk
Copy link
Author

obezuk commented May 5, 2020

Sorry for the n00b question, but where in here would you define the KV, and would you use the KV url, namespace ID, or the CNAME for the KV? Thanks!

Workers KV becomes available within the Workers runtime as a global variable via a Namespace Binding (https://developers.cloudflare.com/workers/reference/storage/namespaces/).

You only need the KV url and namespace ID if you are externally interacting with KV via the Cloudflare API.

I used WORKERS_KV_LINKS as my binding so WORKERS_KV_LINKS.get() and WORKERS_KV_LINKS.put() are all that is needed to interact with KV inside a Worker script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment