Feat/image-optimization-with-astro

* feat: add astro sharp service

* feat: add content type metadata
This commit is contained in:
Furkan Erdem 2024-02-22 17:23:10 +03:00 committed by GitHub
parent a1a54b0294
commit 83ebdcbf21
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,6 +2,7 @@ import { createClient } from "@supabase/supabase-js"
import type { APIRoute } from "astro"
import { createKysely } from "@vercel/postgres-kysely"
import { customAlphabet } from "nanoid"
import sharpService from "astro/assets/services/sharp"
import type { Database } from "@/lib/db"
@ -37,11 +38,20 @@ export const POST: APIRoute = async ({ request }) => {
const randomImageId = nanoid()
const imageName = `${image.name.replace(/\.[^/.]+$/, "")}${randomImageId}.jpg`
const imageName = `${image.name.replace(/\.[^/.]+$/, "")}${randomImageId}.webp`
const { error } = await supabase.storage.from("images").upload(`public/${imageName}`, image, {
const imageBuf = await image.arrayBuffer()
const { data } = await sharpService.transform(
new Uint8Array(imageBuf),
{ src: imageName },
{ domains: [], remotePatterns: [], service: { entrypoint: "", config: { limitInputPixels: false } } }
)
const { error } = await supabase.storage.from("images").upload(`public/${imageName}`, data, {
cacheControl: "3600",
upsert: false
upsert: false,
contentType: "image/webp"
})
if (error) {