Skip to content

Chunk Upload

Oweb exposes ChunkUpload from owebjs/plugins for chunked upload workflows.

import { Route } from 'owebjs';
import { ChunkUpload, ChunkUploadStatus } from 'owebjs/plugins';
export default class ChunkUploadRoute extends Route {
async handle(req, res) {
const file = await req.file();
const buffer = await file.toBuffer();
const result = await ChunkUpload(
{
buffer,
fileName: file.filename,
currentChunk: Number(req.query.currentChunk),
totalChunks: Number(req.query.totalChunks),
},
{
path: './uploads',
maxChunkSize: 1024 * 1024,
maxFileSize: 10 * 1024 * 1024,
},
);
if (
result.status === ChunkUploadStatus.ChunkTooLarge ||
result.status === ChunkUploadStatus.FileTooLarge
) {
return res.status(413).send(result);
}
return res.send(result);
}
}