code/uploader nexray
Created February 20, 2026
tools
const fs = require('fs');
const axios = require('axios');
const FormData = require('form-data');
const path = require('path');
async function upload(filePath) {
try {
const stats = fs.statSync(filePath);
const fileSize = stats.size;
const CHUNK_SIZE = 3 * 1024 * 1024;
const totalChunks = Math.ceil(fileSize / CHUNK_SIZE);
const fileId = Math.random().toString(36).substring(2, 15);
const fileName = path.basename(filePath);
let finalUrl = null;
for (let i = 0; i < totalChunks; i++) {
const start = i * CHUNK_SIZE;
const end = Math.min(fileSize, start + CHUNK_SIZE);
const buffer = fs.readFileSync(filePath).slice(start, end);
const form = new FormData();
form.append('file', buffer, { filename: fileName });
form.append('chunkIndex', i.toString());
form.append('totalChunks', totalChunks.toString());
form.append('fileId', fileId);
form.append('fileName', fileName);
const response = await axios.post('https://cdn.nexray.web.id/upload', form, {
headers: { ...form.getHeaders() },
maxBodyLength: Infinity,
maxContentLength: Infinity
});
if (response.data && response.data.url) {
finalUrl = response.data.url;
}
}
return finalUrl
} catch (error) {
return error.message;
}
}
upload('./database/assets/allmenu.jpg')