chatbot-ui/db/storage/message-images.ts

34 lines
814 B
TypeScript

import { supabase } from "@/lib/supabase/browser-client"
export const uploadMessageImage = async (path: string, image: File) => {
const bucket = "message_images"
const imageSizeLimit = 6000000 // 6MB
if (image.size > imageSizeLimit) {
throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`)
}
const { error } = await supabase.storage.from(bucket).upload(path, image, {
upsert: true
})
if (error) {
throw new Error("Error uploading image")
}
return path
}
export const getMessageImageFromStorage = async (filePath: string) => {
const { data, error } = await supabase.storage
.from("message_images")
.createSignedUrl(filePath, 60 * 60 * 24) // 24hrs
if (error) {
throw new Error("Error downloading message image")
}
return data.signedUrl
}