moosy adlı üyeden alıntı:
mesajı görüntüle
bu sistem çöker mi? yazılımcılar bakabilir mi
21
●732
- 20-06-2025, 23:04:28hocam sizi buralarda görmek çok güzelvictories adlı üyeden alıntı: mesajı görüntüle
streaming konusunda eski yorumlarınızı cok okumuştum.
workers kullanıyorum 5 dolara mesala şu şekilde javascript kodu kullansam yeterli olurmu hocam
function translateResponseHeaders(originalHeaders) { const newHeaders = new Headers(originalHeaders); // Zararlı veya CORS'u bozan header'lar silinirs newHeaders.delete("set-cookie"); newHeaders.delete("Set-Cookie"); // CORS ayarları newHeaders.set("Access-Control-Allow-Origin", "*"); newHeaders.set("Access-Control-Allow-Methods", "GET, HEAD, OPTIONS"); newHeaders.set("Access-Control-Allow-Headers", "*"); // 2 dakika cache süresi (hem edge cache hem de tarayıcı için) newHeaders.set("Cache-Control", "public, max-age=120, s-maxage=120, stale-while-revalidate=30"); return newHeaders; } async function handleRequest(request) { const cache = caches.default; const cacheKey = new Request(request.url, request); // Cache kontrolü const cachedResponse = await cache.match(cacheKey); if (cachedResponse) { return cachedResponse; } // URL oluştur const parsedUrl = new URL(request.url); const path = parsedUrl.pathname.replace("/stream", ""); const search = parsedUrl.search; const targetUrl = "https://www.siteadi.com/match.json" + path + search; // Orijinal içeriği fetch et const originResponse = await fetch(targetUrl); // Yeni response hazırla const response = new Response(originResponse.body, { status: originResponse.status, headers: translateResponseHeaders(originResponse.headers), }); // Edge cache'e yaz await cache.put(cacheKey, response.clone()); return response; } addEventListener("fetch", event => { event.respondWith(handleRequest(event.request)); }); - 21-06-2025, 00:58:28Artık pek fırsatım olmuyor foruma girmeye, zaten birşeyler soran da yok pek, herkes birşeyler satmak derdindemoosy adlı üyeden alıntı: mesajı görüntüle

CORS ile "GET, HEAD, OPTIONS" metotlarını belirtmiş ancak gerçekten bunlar harici istekleri engellememişsin,
async function handleRequest(request) { // Sadece desteklenen metodlara izin ver if (!["GET", "HEAD", "OPTIONS"].includes(request.method)) { return new Response("Method not allowed", { status: 405, headers: { "Allow": "GET, HEAD, OPTIONS" } }); }Gibi kesin olarak harici istekleri engelleyebilirsin.
ayrıca cloudflare de önbellek tutuyor onun içinde şu şekilde
bkz https://developers.cloudflare.com/wo...e-using-fetch/
// Orijinal içeriği fetch et const originResponse = await fetch(targetUrl, { cf: { cacheTtl: 120, // Cloudflare'in kendi önbelleği için tam 2 dakika cacheEverything: true }mümkün mertebe try catch kullan, ayrıca sen istek başarılı olmasada önbelleğe yazdırıp 2 dk boyunca kullanıyorsun, sadece başarılı isteklerin önbelleğe yazılması lazım.
if (!originResponse.ok) { return new Response(`Hedef sunucu hatası: ${originResponse.status}`, { status: originResponse.status }); }if (originResponse.ok) { await cache.put(cacheKey, response.clone()); }Böyle parça parça karışık oldu, toparlarsak şöyle
function translateResponseHeaders(originalHeaders) { const newHeaders = new Headers(originalHeaders); // Zararlı veya CORS'u bozan header'lar silinir newHeaders.delete("set-cookie"); newHeaders.delete("Set-Cookie"); // CORS ayarları newHeaders.set("Access-Control-Allow-Origin", "*"); newHeaders.set("Access-Control-Allow-Methods", "GET, HEAD, OPTIONS"); newHeaders.set("Access-Control-Allow-Headers", "*"); // 2 dakika cache süresi (hem edge cache hem de tarayıcı için) newHeaders.set("Cache-Control", "public, max-age=120, s-maxage=120, stale-while-revalidate=30"); return newHeaders; } async function handleRequest(request) { // Metod kontrolü - sadece desteklenen metodlara izin ver if (!["GET", "HEAD", "OPTIONS"].includes(request.method)) { return new Response("Method not allowed", { status: 405, headers: { "Allow": "GET, HEAD, OPTIONS" } }); } // OPTIONS isteği için hızlı yanıt if (request.method === "OPTIONS") { return new Response(null, { headers: { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, HEAD, OPTIONS", "Access-Control-Allow-Headers": "*" } }); } // Önbellek kontrolü const cache = caches.default; const cacheKey = new Request(request.url, request); const cachedResponse = await cache.match(cacheKey); if (cachedResponse) { return cachedResponse; } // URL oluştur const parsedUrl = new URL(request.url); const path = parsedUrl.pathname.replace("/stream", ""); const search = parsedUrl.search; const targetUrl = "https://www.siteadi.com/match.json" + path + search; try { // Orijinal içeriği fetch et - cf parametresi eklendi const originResponse = await fetch(targetUrl, { cf: { cacheTtl: 120, // 2 dakika cacheEverything: true } }); // Başarısız yanıtlar için işleme if (!originResponse.ok) { return new Response(`Hedef sunucu hatası: ${originResponse.status}`, { status: originResponse.status }); } // Yeni response hazırla const response = new Response(originResponse.body, { status: originResponse.status, headers: translateResponseHeaders(originResponse.headers) }); // Yalnızca başarılı yanıtları önbelleğe yaz if (originResponse.ok) { await cache.put(cacheKey, response.clone()); } return response; } catch (error) { return new Response(`Bağlantı hatası: ${error.message}`, { status: 502, headers: { "Content-Type": "text/plain;charset=UTF-8" } }); } } addEventListener("fetch", event => { event.respondWith(handleRequest(event.request)); }); - 21-06-2025, 02:21:08Sadece sitenin önüne CloudFlare getirseniz bile çözülebilir bu sorun.
Benim JSON servis eden mimarimde şöyle bir istatistik vardı:

Günlük 1 TB trafiğin 950+ GB'ını CF göğüslüyordu.
DNS'i proxied olarak ekleyeceksiniz ve response'daki cache ayarını kendinize uygun şekilde ayarlayacaksınız bu kadar. - 23-06-2025, 21:20:42workers kullanıyor musunuzsigmundfreud adlı üyeden alıntı: mesajı görüntüle
- 23-06-2025, 21:26:08Bu mimaride Workersa gerek duymadık.moosy adlı üyeden alıntı: mesajı görüntüle
- 23-06-2025, 21:27:36hocam şimdi json dosyamız mevcut bu json dosyasını cloudflare cache üzerinden cacheleyip sadece proxiedi aktif halemi getirdiniz tam olarak?sigmundfreud adlı üyeden alıntı: mesajı görüntüle
rahatsız ediyorsam kusura bakmayin gerçekten çok teşekkür ederim bilgilendirme için - 23-06-2025, 21:50:58Hocam aslında sizin probleminiz 40 dakikada çözülebilecek bir iş.
Verileriniz kaç dakikada bir güncelleniyordu bu arada?
streaming konusunda eski yorumlarınızı cok okumuştum.