From 8473fd5a821061287e087575414e597b5b99c64a Mon Sep 17 00:00:00 2001 From: Karuboniru Date: Mon, 27 Sep 2021 16:27:54 +0800 Subject: [PATCH] use cloudflare's cache and set a long max-age --- index.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 6d6a9c9..85ce3a7 100644 --- a/index.js +++ b/index.js @@ -2,13 +2,22 @@ addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }); +const cache = caches.default + async function handleRequest(request) { - const url = new URL(request.url); + const url = new URL(request.url) const imageURL = url.searchParams.get('url'); if(!imageURL) { return new Response(null, {status: 206}); } - - const imageRequest = new Request(imageURL, {headers: request.headers}); - return fetch(imageRequest); + + let response = await cache.match(imageURL) + if (!response) { + const imageRequest = new Request(imageURL, {headers: request.headers}); + response = await fetch(imageRequest) + response = new Response(response.body,{headers: response.headers}) + response.headers.set("Cache-Control", "max-age=604800") + cache.put(imageURL, response.clone()) + } + return response }