chore: release 0.0.1

This commit is contained in:
liaibo
2025-11-29 05:16:23 +08:00
parent 5d0e4c4cb6
commit d350b02fba
92 changed files with 78929 additions and 39164 deletions
@@ -0,0 +1,42 @@
"use server";
import { Buffer } from "node:buffer";
import { randomUUID } from "node:crypto";
import { NextResponse } from "next/server";
import { createSupabaseRouteClient } from "@/lib/supabase/server";
const BUCKET = "media";
const DIRECTORY = "luckysheet";
export async function POST(request: Request) {
const supabase = await createSupabaseRouteClient();
const formData = await request.formData();
const file = formData.get("image");
if (!(file instanceof File)) {
return NextResponse.json({ code: 400, msg: "缺少 image 文件" }, { status: 400 });
}
const arrayBuffer = await file.arrayBuffer();
const buffer = Buffer.from(arrayBuffer);
const extension = file.name?.split(".").pop() || "bin";
const objectPath = `${DIRECTORY}/${randomUUID()}.${extension}`;
const { error: uploadError } = await supabase.storage
.from(BUCKET)
.upload(objectPath, buffer, { contentType: file.type || "application/octet-stream", upsert: false });
if (uploadError) {
return NextResponse.json({ code: 500, msg: "上传失败", detail: uploadError.message }, { status: 500 });
}
const {
data: { publicUrl },
} = supabase.storage.from(BUCKET).getPublicUrl(objectPath);
return NextResponse.json({
code: 200,
msg: "ok",
url: publicUrl,
});
}