File size: 1,024 Bytes
89682f8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import { NextRequest } from "next/server";
import { createClient } from "@vercel/kv";
const kv =
process.env?.KV_REST_API_URL && process.env?.KV_REST_API_TOKEN
? createClient({
url: process.env.KV_REST_API_URL,
token: process.env.KV_REST_API_TOKEN,
})
: null;
export async function POST(req: NextRequest) {
const { key, image } = await req.json();
if (!kv || !key || !image) {
return new Response("", {
status: 200,
});
}
const slug = key.replace(/[^a-zA-Z0-9]/g, "_");
await kv.set(slug, image);
return new Response("", {
status: 200,
});
}
export async function GET(req: NextRequest) {
const key = req.nextUrl.searchParams.get("share");
if (!kv || !key) {
return new Response("", {
status: 200,
});
}
const slug = key.replace(/[^a-zA-Z0-9]/g, "_");
const image = await kv.get<string>(slug);
if (!image) {
return new Response("", {
status: 200,
});
}
return new Response(image, {
status: 200,
});
}
|