URL Shortener за 2 минуты с помощью CloudFlare’s worker и KV.

Требуемое время: 2 мин.

Способность: Возможность копирования прошлого или Full Stack разработчика :)- .

Итак, это моя вторая попытка использовать рабочую базу CloudFlare и базу данных пар «ключ-значение».

Шаг 1

Создайте базу данных KV и рабочий CloudFlare. Для этого вам не нужно никакого доменного имени, вы можете использовать рабочий поддомен CloudFlare.

Теперь прикрепите КВ к своему воркеру. Выполните следующие действия, чтобы привязать KV к вашему воркеру.

Open Worker › Settings › Variables › KV Namespace Bindings

Здесь вы можете указать собственное имя, которое будет доступно только внутри вашего воркера, и выбрать свой KV из выпадающего списка.

Шаг 2

В моем случае я назвал свой KV «shortUrlList». И насколько мы готовы использовать код. Итак, вот код, который я использую внутри работника для перенаправления.

addEventListener("fetch", (event) => {
event.respondWith(handleRequest(event.request));
});
let fallBackUrl = "https://debjit.in";
let url ;

async function handleRequest(request) {
let getUrlSegment = request.url.split('/');

let codeForUrl = (getUrlSegment[getUrlSegment.length - 1] ?? 'base');
if (codeForUrl.length !== 0 & codeForUrl !== null & codeForUrl !== undefined )
{
url = await shortUrlList.get(codeForUrl);
}
if( url === undefined|| url === null || url.length === 0  )
{
return Response.redirect(fallBackUrl, 301);
}
return Response.redirect(url, 301);
}

Вот краткое объяснение кода и того, как это работает.

мы получаем URL из запроса и обрабатываем внутри, переменную «codeForUrl».

Мы ищем внутри нашего KV, используя ключ «shortUrlList.get(‘key»), и он возвращает значение или null/false.

Теперь просто верните URL-адрес с 301 или вы можете изменить его на 302.

Это очень просто, но если вы хотите добавить перенаправление URL-адресов, вам нужно войти в свою учетную запись CloudFlare, а затем

Worker › KV › View › Добавить туда новую пару «ключ-значение».

Надеюсь, это работает хорошо для вас.