diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 5f74ddf24..2f48f2ee1 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.16.2", + "version": "3.16.3", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/service/storage.ts b/packages/hydrooj/src/service/storage.ts index 78295a885..166ae338c 100644 --- a/packages/hydrooj/src/service/storage.ts +++ b/packages/hydrooj/src/service/storage.ts @@ -10,7 +10,7 @@ import { BucketItem, Client, ItemBucketMetadata } from 'minio'; import { Logger } from '../logger'; import { builtinConfig } from '../settings'; import { MaybeArray } from '../typeutils'; -import { md5 } from '../utils'; +import { md5, streamToBuffer } from '../utils'; const logger = new Logger('storage'); @@ -261,7 +261,8 @@ class LocalStorageService { target = resolve(this.dir, target); await ensureDir(dirname(target)); if (typeof file === 'string') await copyFile(file, target); - else await writeFile(target, file); + else if (file instanceof Buffer) await writeFile(target, file); + else await writeFile(target, await streamToBuffer(file)); } async get(target: string, path?: string) {