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 › Добавить туда новую пару «ключ-значение».
Надеюсь, это работает хорошо для вас.