FH

Temporary File Hosting API

Sederhana, publik, tanpa login. Domain target: https://apprentice.cyou/

Upload File

Upload file publik (video dan jenis lain). Link akan dihasilkan otomatis dan bisa dipakai di mana saja.

Disarankan video (.mp4, .mov, .avi). Maksimal 100MB per file.

Hanya untuk organisasi lokal di browser ini. Semua file tetap publik via URL.

i

Catatan hosting

Setelah di-deploy ke cPanel dan diarahkan ke domain https://apprentice.cyou/, halaman ini dapat diakses langsung dari root domain.

Folder

File di Folder Aktif

API Overview

Form upload ini publik tanpa autentikasi. Untuk integrasi otomatis (n8n) tersedia endpoint khusus dengan API key.

GET /health

Cek status server.

curl -X GET "{{ORIGIN}}/health"
POST PUBLIC /upload

Upload file via multipart form. Server akan mengembalikan URL publik.

curl -X POST "{{ORIGIN}}/upload" \
  -F "file=@/path/to/video.mp4"

Contoh respons:

{
  "success": true,
  "url": "{{ORIGIN}}/files/xxxxx.mp4",
  "filename": "xxxxx.mp4",
  "size": 123456
}
GET PUBLIC /files/:filename

Akses file yang sudah di-upload. Mendukung header Range untuk video streaming.

curl -L "{{ORIGIN}}/files/xxxxx.mp4" -o output.mp4

Maintenance singkat

  • Monitor disk space di server karena file video cukup besar.
  • Pastikan cron/interval Node.js tetap aktif agar auto cleanup 3 jam berjalan.
  • Jika aplikasi error, lakukan restart Node.js App dari panel cPanel.
  • Update dependency Node.js secara berkala dan test di staging sebelum production.

Integrasi n8n

Gunakan endpoint API yang sama langsung dari workflow n8n. Endpoint ini menggunakan header x-api-key untuk autentikasi.

Langkah singkat di n8n

  1. Pastikan server ini bisa diakses dari n8n (contoh: {{ORIGIN}}).
  2. Buat environment variable di n8n: $env.FILE_HOSTING_BASE_URL dan $env.FILE_HOSTING_API_KEY.
  3. Import salah satu template JSON di bawah ini ke n8n, lalu sesuaikan jika perlu.

Template 1: Upload file

Workflow sederhana: Start → HTTP Request (POST /api/files) dengan binary dari node sebelumnya.

Download template upload.json

Template 2: List file aktif

Workflow sederhana: Start → HTTP Request (GET /api/files?status=active) untuk membaca daftar file yang belum expired.

Download template list-active.json

Contoh konfigurasi node HTTP Request (upload)

{
  "url": "={{$env.FILE_HOSTING_BASE_URL}}/api/files",
  "method": "POST",
  "sendBinaryData": true,
  "binaryPropertyName": "data",
  "sendBody": true,
  "headerParametersUi": {
    "parameter": [
      {
        "name": "x-api-key",
        "value": "={{$env.FILE_HOSTING_API_KEY}}"
      }
    ]
  },
  "bodyParametersUi": {
    "parameter": [
      { "name": "expiry_minutes", "value": "60" },
      { "name": "meta", "value": "={{JSON.stringify({ source: \"n8n\" })}}" }
    ]
  }
}