@@ -16,6 +16,7 @@ import { getUser } from "../user/queries";
1616import { hasEnoughStorage } from "../media/storage-middleware" ;
1717import { createTusUpload , updateTusUploadOffset } from "./queries" ;
1818import getMaxFileUploadSize from "../media/utils/get-max-file-upload-size" ;
19+ import mediaService from "../media/service" ;
1920
2021const store = new FileStore ( {
2122 directory : `${ tempFileDirForUploads } /tus-uploads` ,
@@ -25,6 +26,7 @@ export const server = new Server({
2526 path : "/media/create/resumable" ,
2627 datastore : store ,
2728 respectForwardedHeaders : true ,
29+ exposedHeaders : [ "media" ] ,
2830 onIncomingRequest : async ( req : any ) => {
2931 try {
3032 const response = await getUserAndAPIKey ( req ) ;
@@ -80,15 +82,24 @@ export const server = new Server({
8082 onUploadFinish : async ( req : any , upload : any ) => {
8183 try {
8284 console . time ( "finalize" ) ;
83- await finalizeUpload ( upload . id ) ;
85+ const mediaId = await finalizeUpload ( upload . id ) ;
8486 console . timeEnd ( "finalize" ) ;
85- return { } ;
87+ const media = await mediaService . getMediaDetails ( {
88+ userId : req . user . _id ,
89+ apikey : req . apikey ,
90+ mediaId,
91+ } ) ;
92+ return {
93+ headers : {
94+ media : JSON . stringify ( media ) ,
95+ } ,
96+ } ;
8697 } catch ( err : any ) {
8798 logger . error (
8899 { err, uploadId : upload . id } ,
89100 "Error finalizing tus upload" ,
90101 ) ;
91- return {
102+ throw {
92103 status_code : 403 ,
93104 body : err . message ,
94105 } ;
0 commit comments