// cloud storage
Upload & Share
Upload file apapun, dapat link langsung yang bisa dibagikan ke siapapun.
⚡ Maks 20MB per file · Powered by Telegram · Gratis
Klik atau drop file di sini
Semua tipe file didukung · Maks 20MB
—
—
Mengupload...0%
// riwayat upload (sesi ini)
Belum ada file yang diupload.
// developer
Pakai lewat API
Endpoint ini publik, bisa dipanggil dari luar browser juga — dari script Node.js, bot, atau aplikasi kamu sendiri. Berikut endpoint yang tersedia dan contoh pemakaiannya.
| Method | Path | Keterangan |
|---|---|---|
| POST | /api/upload | Upload file (multipart/form-data, field file) |
| GET | /api/file/:id | Redirect ke file asli berdasarkan id dari hasil upload |
upload.mjs
// npm install node-fetch form-data import fetch from "node-fetch"; import FormData from "form-data"; import fs from "fs"; const form = new FormData(); form.append("file", fs.createReadStream("./foto.png")); const res = await fetch("https://ruina.z-hiruira.biz.id/api/upload", { method: "POST", body: form, // jangan set Content-Type manual, form-data sudah menentukan boundary-nya sendiri headers: form.getHeaders(), }); const data = await res.json(); if (!data.ok) { throw new Error(data.error); } console.log("Link file:", data.url); console.log("Ukuran:", data.size, "bytes");
terminal
# upload file curl -X POST https://ruina.z-hiruira.biz.id/api/upload \ -F "file=@./foto.png" # hasilnya berupa JSON, ambil field "url" buat akses filenya
browser console / frontend
// dari <input type="file"> di HTML const form = new FormData(); form.append("file", inputEl.files[0]); const res = await fetch("/api/upload", { method: "POST", body: form }); const data = await res.json(); console.log(data.url); // link file siap dibagikan
response — 200 OK
{
"ok": true,
"filename": "foto.png",
"size": 482311,
"url": "https://ruina.z-hiruira.biz.id/api/file/AgADBQA...",
"fileId": "AgADBQA..."
}
// kalau gagal:
{ "ok": false, "error": "pesan errornya di sini" }