Cloudflare ने हाल ही में Cloudflare Workers के लिए Upstash इंटीग्रेशन जारी किया है। इससे Workers पर Upstash उत्पादों का उपयोग करना और भी आसान हो जाता है। इस ब्लॉग पोस्ट में, हम एक सर्वरलेस URL शॉर्टनर बनाने के लिए Upstash Redis इंटीग्रेशन का उपयोग करने जा रहे हैं।
शुरुआत करना
इस प्रोजेक्ट को बनाने के चरण यहां दिए गए हैं:
- एक Upstash डेटाबेस सेट अप करें
- Cloudflare पर वर्कर बनाएं
- Cloudflare Workers को Upstash के साथ एकीकृत करें
- प्रोजेक्ट एल्गोरिदम लागू करें।
- अपना एप्लिकेशन डिप्लॉय करें
डेटाबेस बनाना
Upstash कंसोल पर नेविगेट करें, और Redis अनुभाग में Create database बटन पर क्लिक करके अपने लिए एक Redis डेटाबेस बनाएं।

बस, आपका डेटाबेस पूरी तरह सेट है!
Cloudflare Worker बनाना
हम Cloudflare CLI टूल का उपयोग करके वर्कर जनरेट करने जा रहे हैं। यह एक बहुत सरल प्रक्रिया है। बस अपना टर्मिनल खोलें और नीचे दी गई कमांड टाइप करें:
npm create cloudflare@latest
इस कमांड को निष्पादित करने से आप एप्लिकेशन के विकल्पों और कॉन्फ़िगरेशन के माध्यम से आगे बढ़ेंगे। अंत में, यह आपसे Cloudflare में लॉग इन करने का अनुरोध करेगा। नीचे मेरा कॉन्फ़िगरेशन और परिणामी आउटपुट का एक उदाहरण है:
हमने एक ही लाइन कमांड का उपयोग करके एप्लिकेशन बनाया और डिप्लॉय किया है। इस कमांड ने इस तरह के एक फ़ोल्डर को इनिशियलाइज़ किया होगा:
/url-shortener src └── worker.ts node_modules package-lock.json package.json tsconfig.json wrangler.toml
Upstash इंटीग्रेशन को सक्षम करना भी उतना ही सीधा होगा।
Cloudflare - Upstash इंटीग्रेशन
Cloudflare डैशबोर्ड पर पहुंचें और उसी खाते से लॉग इन करें जिससे आपने url-shortener एप्लिकेशन बनाया है। फिर, साइडबार के Workers & Pages > Overview अनुभाग पर नेविगेट करें। यहां, आपको url-shortener एप्लिकेशन सूचीबद्ध मिलेगा।

एप्लिकेशन पर क्लिक करने से आप एप्लिकेशन विवरण पेज पर पहुंच जाएंगे, जहां हम इंटीग्रेशन प्रक्रिया करेंगे। एप्लिकेशन विवरण में Settings टैब पर स्विच करें, और Integrations अनुभाग पर आगे बढ़ें। आपको विभिन्न वर्कर इंटीग्रेशन सूचीबद्ध दिखाई देंगे। आगे बढ़ने के लिए, Upstash Redis से जुड़े Add Integration बटन पर क्लिक करें।

इंटीग्रेशन पेज पर, अपने Upstash खाते से कनेक्ट करें। फिर, ड्रॉपडाउन मेनू से url-shortener डेटाबेस चुनें। Save button दबाकर प्रक्रिया को अंतिम रूप दें।
नोट: Configure secrets चरण पर सीक्रेट नामों में कोई बदलाव न करें। इन क्रेडेंशियल को कोड में Redis.fromEnv(env) लाइन द्वारा UPSTASH_REDIS_REST_URL और UPSTASH_REDIS_REST_TOKEN के रूप में स्वचालित रूप से लिया जाएगा।

URL शॉर्टनर लागू करना
हमारा कार्यान्वयन काफी सरल होगा। इसमें दो कार्यक्षमताएं होंगी:
-
जब POST विधि का उपयोग करके एक URL भेजा जाता है, तो उस URL को एक यादृच्छिक रूप से उत्पन्न कुंजी दी जाएगी। यह कुंजी-URL जोड़ी पुनर्प्राप्ति के लिए Redis में संग्रहीत की जाएगी। कुंजी को वर्कर URL में पथ के रूप में जोड़ा जाएगा और उपयोगकर्ता को
<YOUR_WORKER_URL>/<KEY>प्रारूप में भेजा जाएगा। -
जब कोई उपयोगकर्ता पहले से जोड़ी गई कुंजी को पथ के रूप में वर्कर URL के साथ एक्सेस करता है, तो कुंजी के संबंधित मान को Redis से पुनः प्राप्त किया जाएगा। उपयोगकर्ता को तब
307प्रतिक्रिया कोड के साथ इस URL पर रीडायरेक्ट किया जाएगा।
हम src/worker.ts फ़ाइल में एप्लिकेशन को लागू करेंगे। नीचे हमारे URL शॉर्टनर का बुनियादी कार्यान्वयन है:
import { Redis } from "@upstash/redis/cloudflare"; export interface Env { UPSTASH_REDIS_REST_URL: string; UPSTASH_REDIS_REST_TOKEN: string; } export default { async fetch( request: Request, env: Env, ctx: ExecutionContext, ): Promise<Response> { const redis = Redis.fromEnv(env); /* generateRandomKey फ़ंक्शन एक 7 अंकों की अल्फ़ान्यूमेरिक कुंजी लौटाता है। यदि Redis में एक समान कुंजी मौजूद है, तो यह एक नई कुंजी बनाएगा। */ async function generateRandomKey(): Promise<string> { const key: string = btoa( crypto.getRandomValues(new Uint8Array(2)).toString(), ).replaceAll("=", ""); if (await redis.exists(key)) { return generateRandomKey(); } return key; } /* यदि अनुरोध विधि POST है, तो अनुरोध शरीर से "longUrl" फ़ील्ड निकाला जाएगा और इस URL के लिए एक नई कुंजी उत्पन्न की जाएगी। फिर, इस कुंजी-मान जोड़ी को Redis में स्थायी किया जाएगा। */ if (request.method === "POST") { const requestUrl = request.url; const body = await request.text(); const { longUrl } = JSON.parse(body); const key = await generateRandomKey(); redis.set(key, longUrl); const responseUrl = requestUrl + key; return new Response(responseUrl); } const slug: string = request.url.split("/").pop() || ""; const url = (await redis.get(slug)) as string; /* यदि स्लग Redis DB में कुंजी के रूप में मौजूद है, तो उपयोगकर्ता को मान में URL पर रीडायरेक्ट किया जाएगा। यदि स्लग Redis में मौजूद नहीं है, या यह बिल्कुल मौजूद नहीं है, तो एक त्रुटि लौटाई जाएगी। */ if (url) { return Response.redirect(url, 307); } else { const errorText = !slug ? "Please provide a slug." : `Slug ${slug} not found. `; return new Response(errorText, { status: 404 }); } }, };
अब जब हमारा एल्गोरिदम तैयार है, तो केवल एक चरण शेष है: एप्लिकेशन डिप्लॉय करना। टर्मिनल से url-shortener फ़ोल्डर पर नेविगेट करें, और नीचे दी गई कमांड चलाएं:
npm run deploy
हमारा Cloudflare Worker अब चालू और चल रहा है! आप इसे या तो एप्लिकेशन डैशबोर्ड में, या एक curl अनुरोध के माध्यम से परीक्षण कर सकते हैं। यहां आपके लिए एक उदाहरण अनुरोध है। आप URL को अपने वर्कर URL से बदल सकते हैं, या मेरे कार्यान्वयन के साथ परीक्षण कर सकते हैं:
curl -X POST https://url-shortener.fahreddin.workers.dev \ -d '{ "longUrl" : "https://google.com" }'
प्रतिक्रिया URL पर क्लिक करने से आप https://google.com पर रीडायरेक्ट हो जाएंगे।
निष्कर्ष
ट्यूटोरियल का अनुसरण करने के लिए धन्यवाद!
जैसा कि आपने खोजा है, सर्वरलेस फ़ंक्शन और Upstash Redis की शक्ति का संयोजन आपके प्रोजेक्ट्स के लिए संभावनाओं की एक दुनिया खोलता है। इस जोड़ी की बहुमुखी प्रतिभा और दक्षता आपको ऐसे समाधान बनाने के लिए सशक्त बनाती है जो न केवल अभिनव हैं बल्कि उल्लेखनीय रूप से प्रतिक्रियाशील भी हैं।
याद रखें, यह गाइड सिर्फ शुरुआत है। इस प्रोजेक्ट को विस्तारित और सुधारने की कोई सीमा नहीं है।
यदि आपके कोई प्रश्न या समस्याएं हैं, तो बेझिझक fahreddin@upstash.com पर मुझसे संपर्क करें।
हैप्पी कोडिंग!