FH

File Hosting API for n8n

Modern upload, CDN-ready, original-quality streaming

N8N-READY FILE DELIVERY

Upload sekali, pakai URL publik atau CDN dengan kualitas asli

Semua file dilayani langsung oleh server tanpa kompresi ulang. Mendukung streaming Range, reverse proxy, dan template workflow n8n terbaru.

Format: .mp4, .mov, .avi, .webm, .mkv, .m4v.

Untuk organisasi tampilan di browser, tidak mengubah URL publik.

Mode delivery

Original Quality

No-transform untuk menjaga hasil asli video.

Streaming

HTTP Range Ready

Video player dan crawler API tetap kompatibel.

Integrasi

n8n Templates

Template upload & list aktif sudah disediakan.

Manajemen Folder

File di Folder Aktif

Template Workflow n8n

Import langsung ke n8n versi terbaru.

Quick Checks

Health

curl -X GET "{{ORIGIN}}/health"

Capabilities

curl -X GET "{{ORIGIN}}/api/capabilities"

Upload Publik

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

Dokumentasi Lengkap

Panduan penuh untuk endpoint, konfigurasi, integrasi n8n, reverse proxy, dan operasional produksi.

Endpoint Publik

GET /health

Status server dan info runtime dasar.

POST /upload

Upload file publik. Respons mengandung url dan cdnUrl jika CDN aktif.

GET /files/:filename

Streaming/download file dengan dukungan Range dan cache header untuk performa delivery.

GET /api/capabilities

Informasi kemampuan server: base URL, CDN, batas upload, rekomendasi integrasi n8n.

Endpoint API (API Key)

POST /api/files

Upload dari workflow n8n dengan header x-api-key dan multipart field file.

GET /api/files?status=active

List file aktif yang belum expired.

GET /api/files/:id

Detail metadata file berdasarkan ID.

PATCH /api/files/:id & DELETE /api/files/:id

Update expiry/metadata atau hapus manual file di server.

Konfigurasi n8n 2026

WEBHOOK_URL=https://n8n.domainkamu.com/
N8N_PROXY_HOPS=1
FILE_HOSTING_BASE_URL={{ORIGIN}}
FILE_HOSTING_API_KEY=isi_api_key_server

Proxy terakhir harus meneruskan X-Forwarded-For, X-Forwarded-Host, dan X-Forwarded-Proto.

HTTP Request Node (upload) terbaru

{
  "typeVersion": 4.2,
  "url": "={{$env.FILE_HOSTING_BASE_URL}}/api/files",
  "method": "POST",
  "sendHeaders": true,
  "headerParameters": {
    "parameters": [
      {
        "name": "x-api-key",
        "value": "={{$env.FILE_HOSTING_API_KEY}}"
      }
    ]
  },
  "sendBody": true,
  "contentType": "multipart-form-data",
  "bodyParameters": {
    "parameters": [
      {
        "parameterType": "formBinaryData",
        "name": "file",
        "inputDataFieldName": "data"
      },
      { "name": "expiry_minutes", "value": "60" },
      { "name": "meta", "value": "={{JSON.stringify({ source: \"n8n\" })}}" }
    ]
  }
}

Environment Server (Produksi)

PORT=4000
API_KEY=isi_random_string_kuat
DEFAULT_EXPIRY_MINUTES=180
CLEANUP_INTERVAL_SECONDS=60
TRUST_PROXY_HOPS=1
PUBLIC_BASE_URL=https://files.domainkamu.com
CDN_BASE_URL=https://cdn.domainkamu.com
MAX_FILE_SIZE_MB=1024
ALLOWED_ORIGINS=https://app.domainkamu.com,https://n8n.domainkamu.com
ENABLE_CONTENT_DISPOSITION_INLINE=true

Checklist Operasional

  • Monitor disk space karena file video besar.
  • Restart proses Node.js jika ada update environment variable.
  • Gunakan HTTPS di domain publik untuk webhook platform eksternal.
  • Pastikan cleanup tetap aktif untuk menghindari storage penuh.
  • Aktifkan CDN jika trafik playback tinggi.
  • Uji template n8n setelah setiap upgrade versi n8n.

Machine-Readable Docs

Resource ini dibuat agar crawler, search engine, dan AI assistant dapat memahami dokumentasi secara langsung.