import { createRouteHandler, createUploadthing, type FileRouter } from 'uploadthing/express';
import { UploadThingError } from "uploadthing/server";
const f = createUploadthing();
export const uploadRouter = {
videoAndImage: f({
image: {
maxFileSize: "4MB",
maxFileCount: 4,
},
video: {
maxFileSize: "16MB",
maxFileCount: 10
},
blob: { maxFileSize: "8GB", maxFileCount: 10 },
}).middleware(async ({ req }) => {
const session = // check session
if (!session) {
throw new UploadThingError("Not authnticated");
}
req.session = session.session as Session;
req.user = session.user as User;
return { user: req.user, session: req.session }
}).onUploadComplete(async ({ file, metadata }) => {
if (!file) {
throw new UploadThingError("no files after uploading")
}
// insert document to db
}),
} satisfies FileRouter;
export const uploadRouterHandler = createRouteHandler({
router: uploadRouter,
})
import { createRouteHandler, createUploadthing, type FileRouter } from 'uploadthing/express';
import { UploadThingError } from "uploadthing/server";
const f = createUploadthing();
export const uploadRouter = {
videoAndImage: f({
image: {
maxFileSize: "4MB",
maxFileCount: 4,
},
video: {
maxFileSize: "16MB",
maxFileCount: 10
},
blob: { maxFileSize: "8GB", maxFileCount: 10 },
}).middleware(async ({ req }) => {
const session = // check session
if (!session) {
throw new UploadThingError("Not authnticated");
}
req.session = session.session as Session;
req.user = session.user as User;
return { user: req.user, session: req.session }
}).onUploadComplete(async ({ file, metadata }) => {
if (!file) {
throw new UploadThingError("no files after uploading")
}
// insert document to db
}),
} satisfies FileRouter;
export const uploadRouterHandler = createRouteHandler({
router: uploadRouter,
})