diff --git a/web/src/lib/libav.ts b/web/src/lib/libav.ts index 0d09c38f..63e0c0e2 100644 --- a/web/src/lib/libav.ts +++ b/web/src/lib/libav.ts @@ -120,12 +120,7 @@ export default class LibAVWrapper { outputName ]); - const file = new File( - [ await storage.res() ], - outputName, - { type: output.type } - ); - + const file = Storage.retype(await storage.res(), output.type); if (file.size === 0) return; return file; diff --git a/web/src/lib/storage/index.ts b/web/src/lib/storage/index.ts index 2ddeb15e..8687eb3c 100644 --- a/web/src/lib/storage/index.ts +++ b/web/src/lib/storage/index.ts @@ -13,3 +13,7 @@ export function init(expectedSize?: number): Promise { throw "no storage method is available"; } + +export function retype(file: File, type: string) { + return new File([ file ], file.name, { type }); +} diff --git a/web/src/lib/task-manager/workers/fetch.ts b/web/src/lib/task-manager/workers/fetch.ts index 5b84ee1e..3277071d 100644 --- a/web/src/lib/task-manager/workers/fetch.ts +++ b/web/src/lib/task-manager/workers/fetch.ts @@ -76,9 +76,7 @@ const fetchFile = async (url: string) => { return error("tunnel is broken"); } - const file = new File( - [ await storage.res() ], '', { type: contentType } - ); + const file = Storage.retype(await storage.res(), contentType); if (contentLength && Number(contentLength) !== file.size) { return error("file was not downloaded fully");