Modern file uploader for CloudkuImages with TypeScript support
✨ Modern Architecture - Full ESM & CommonJS support
🚀 Zero Dependencies - Lightweight and fast
📁 Multi-format Support - Images, documents, and more
🛡️ Type Safe - Built-in TypeScript definitions
⚡ Simple API - Just one function call
🌐 Reliable - Powered by CloudkuImages infrastructure
npm install cloudku-uploader
import uploadFile from 'cloudku-uploader'
import { readFileSync } from 'fs'
const file = readFileSync('image.jpg')
const response = await uploadFile(file, 'image.jpg')
console.log(`Uploaded: ${response.result.url}`)
Uploads a file buffer to CloudkuImages server.
Parameters:
-
buffer
(Buffer) - File content as Buffer -
filename
(String) - Original filename with extension
Returns: Promise<UploadResponse>
interface UploadResponse {
status: 'success' | 'error'
creator: string
information: string
result: {
filename: string // Generated filename on server
type: string // MIME type detected
size: string // Human-readable file size
url: string // Direct download URL
}
}
📸 Image Upload (ESM)
import uploadFile from 'cloudku-uploader'
import { readFileSync } from 'fs'
async function uploadImage() {
try {
const imageBuffer = readFileSync('./photo.jpg')
const result = await uploadFile(imageBuffer, 'photo.jpg')
if (result.status === 'success') {
console.log('Image URL:', result.result.url)
console.log('File Size:', result.result.size)
}
} catch (error) {
console.error('Upload failed:', error.message)
}
}
uploadImage()
📄 Document Upload (CommonJS)
const uploadFile = require('cloudku-uploader')
const fs = require('fs')
async function uploadDocument() {
const docBuffer = fs.readFileSync('./document.pdf')
const response = await uploadFile(docBuffer, 'document.pdf')
console.log('Document uploaded:', response.result.url)
return response.result.url
}
uploadDocument()
🔄 Multiple Files
import uploadFile from 'cloudku-uploader'
import { readFileSync, readdirSync } from 'fs'
import { join } from 'path'
async function uploadMultiple(folderPath) {
const files = readdirSync(folderPath)
const uploadPromises = files.map(async (filename) => {
const buffer = readFileSync(join(folderPath, filename))
return uploadFile(buffer, filename)
})
const results = await Promise.all(uploadPromises)
return results.map(r => r.result.url)
}
const urls = await uploadMultiple('./uploads')
console.log('All files uploaded:', urls)
⚡ Express.js Integration
import express from 'express'
import multer from 'multer'
import uploadFile from 'cloudku-uploader'
const app = express()
const upload = multer()
app.post('/upload', upload.single('file'), async (req, res) => {
try {
const result = await uploadFile(req.file.buffer, req.file.originalname)
res.json({ success: true, url: result.result.url })
} catch (error) {
res.status(500).json({ success: false, error: error.message })
}
})
app.listen(3000)
Category | Extensions | Max Size |
---|---|---|
Images | jpg, png, gif, webp, svg | 100MB |
Documents | pdf, doc, docx, txt, md | 25MB |
Archives | zip, rar, 7z, tar | 50MB |
Media | mp4, mp3, avi, mov | 100MB |
Code | js, ts, py, php, html, css | 5MB |
try {
const result = await uploadFile(buffer, 'file.jpg')
if (result.status !== 'success') {
throw new Error('Upload failed')
}
console.log('Success:', result.result.url)
} catch (error) {
console.error('Error:', error.message)
}
- Use appropriate file sizes (compress large images)
- Implement retry logic for network failures
- Consider using streams for very large files
- Validate file types before uploading
Resource | URL |
---|---|
🌐 Service | cloudkuimages.guru |
📦 Repository | github.com/cloudkuimages |
💬 Support | WhatsApp Channel |
📚 NPM Package | npmjs.com/package/cloudku-uploader |
This project is licensed under a Custom MIT License.
Made with ❤️ by AlfiDev
Empowering developers with reliable file upload solutions