Self-hosted · API key + storage name · ala Cloudinary

Hosting file sendiri, semudah Cloudinary

Upload, kelola, dan bagikan file lewat REST API dengan autentikasi API key + nama storage. File tersimpan di server Anda sendiri — tanpa biaya per-bandwidth cloud.

1. Buat storage

Buat storage (mis. "produk-utama") di dashboard admin — seperti cloud name di Cloudinary.

2. Generate API key

Buat API key untuk storage tersebut. Key hanya ditampilkan sekali dan disimpan ter-hash.

3. Upload via API

Kirim file bersama api_key + storage name ke /api/v1/upload. Selesai — dapat URL publik.

Coba langsung dari browser

Isi storage dan api_key dari dashboard admin, pilih file, lalu upload. Responsnya identik dengan yang Anda dapat dari curl atau aplikasi.

API key di-hash (SHA-256) — tidak pernah disimpan mentah

File tersimpan di disk server, URL publik langsung bisa dipakai

SDK tidak wajib — cukup HTTP biasa dari bahasa apa pun

Coba upload sekarang

Dokumentasi API

Semua endpoint publik diautentikasi dengan header x-api-key + x-storage-name atau field api_key + storage.

curl
# Upload file (mirip Cloudinary)
curl -X POST https://googles.my.id/api/v1/upload \
  -F "file=@foto.jpg" \
  -F "storage=produk-utama" \
  -F "api_key=fh_abc123..."

# List file
curl "https://googles.my.id/api/v1/files?storage=produk-utama&api_key=fh_abc123..."

# Hapus file
curl -X DELETE "https://googles.my.id/api/v1/files/ID_FILE?storage=produk-utama&api_key=fh_abc123..."
JavaScript
// Contoh di browser / Node.js
const form = new FormData();
form.append("file", fileInput.files[0]);
form.append("storage", "produk-utama");
form.append("api_key", "fh_abc123...");

const res = await fetch("/api/v1/upload", { method: "POST", body: form });
const data = await res.json();
console.log(data.secure_url); // URL publik file
Endpoints
POST/api/v1/uploadUpload file (multipart)
GET/api/v1/filesList file storage (paginasi)
GET/api/v1/files/:idInfo satu file
DELETE/api/v1/files/:idHapus file
GET/f/:public_idAkses publik file (URL hasil upload)