Spaces:
Running
Running
| const axios = require('axios'); | |
| const FormData = require('form-data'); | |
| module.exports = async buffer => { | |
| try { | |
| const { fromBuffer } = require('file-type'); | |
| let fileType = await fromBuffer(buffer); | |
| if (!fileType) { | |
| throw new Error('Cannot determine file type'); | |
| } | |
| let { ext } = fileType; | |
| const randomName = Math.random().toString(36).substring(2, 8); | |
| let bodyForm = new FormData(); | |
| bodyForm.append("file", buffer, `${randomName}.${ext}`); | |
| let res = await axios.post("https://cdnme.idnet.my.id/upload", bodyForm, { | |
| headers: { | |
| ...bodyForm.getHeaders() | |
| }, | |
| maxContentLength: Infinity, | |
| maxBodyLength: Infinity | |
| }); | |
| if (res.data.success && res.data.url) { | |
| return res.data.url; | |
| } else { | |
| throw new Error('Upload failed: Invalid response'); | |
| } | |
| } catch (error) { | |
| console.error('Upload error:', error.message); | |
| if (error.response) { | |
| console.error('Response data:', error.response.data); | |
| console.error('Response status:', error.response.status); | |
| } | |
| throw error; | |
| } | |
| } |