File Chunkify
npm install file-chunkifysh
npm install file-chunkify
`
Usage
$3
Use splitFile to break a large file into chunks before processing:
`ts
import { splitFile } from "file-chunkify";
const fileInput = document.querySelector("input[type='file']");
fileInput.addEventListener("change", async (event) => {
const file = event.target.files[0];
for await (const chunkInfo of splitFile({
file,
chunkSize: 5 1024 1024,
})) {
console.log("Processing chunk", chunkInfo);
// Send chunkInfo.chunk to the storage or processing pipeline
}
});
`
$3
Use saveChunk to store received chunks and merge them when all are received:
`ts
import { saveChunk } from "file-chunkify";
import express from "express";
import multer from "multer";
const app = express();
const upload = multer();
app.post("/upload", upload.single("chunk"), async (req, res) => {
const { chunkNumber, totalChunks } = req.body;
const result = await saveChunk({
file: req.file,
chunkNumber: Number(chunkNumber),
totalChunks: Number(totalChunks),
options: { debugMode: true }, // Example usage of debugger
});
res.json(result);
});
app.listen(3000, () => console.log("Server running on port 3000"));
`
API Reference
$3
Splits a file into chunks.
#### Parameters:
| Name | Type | Default | Description |
| --------- | ------ | -------- | ------------------------------------- |
| file | File | Required | The file to be split. |
| chunkSize | number | 5MB | The size of each chunk. |
| options | object | Optional | Additional options, including debugMode. |
#### Returns:
An async generator yielding objects with:
- chunk: A file slice (File)
- chunkNumber: The current chunk number
- totalChunks: Total number of chunks
- fileName: A generated UUID-based file name
- progress`: Split progress in %