From f1e9968e4cea0cc6a4d3025717706134ee9f61bb Mon Sep 17 00:00:00 2001 From: D4rkst3r Date: Tue, 11 Aug 2026 22:53:32 +0200 Subject: [PATCH] =?UTF-8?q?Anleitung=20aus=20docs/=20=E2=80=94=202026-08-1?= =?UTF-8?q?1=2022:53?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/API.md b/API.md index 0cc155b..38e84fe 100644 --- a/API.md +++ b/API.md @@ -85,6 +85,58 @@ dann bleibt es beim Original. --- +## Umziehen von Fivemanage — ohne Lua anzufassen + +Auf einem laufenden Server stecken die Fivemanage-Aufrufe in einem Dutzend +Ressourcen: Kamera, Handy, MDT, Fahrzeugstudio. Sie alle umzuschreiben heißt, +fremde Skripte anzufassen — und beim nächsten Update wieder. + +**Der Dienst spricht deshalb ihre Sprache.** Der Umzug ist eine Zeile je Skript: +`api.fivemanage.com` → `fivemanage.d4rkst3r.de`. Der Schlüssel bleibt derselbe +Kopf, die Antwort dieselbe Form. Als Schlüssel setzt du einen **Token dieses +Dienstes** ein. + +| Fivemanage | hier | Feld | Antwort | +|---|---|---|---| +| `POST /api/image` | ✅ gleich | `image` (oder `file`) | `{ "url": …, "id": …, "path": … }` | +| `POST /api/video` | ✅ gleich | `video` | dito | +| `POST /api/audio` | ✅ gleich | `audio` | dito | +| `POST /api/v3/file` | ✅ gleich | `file`, `path?`, `filename?` | `{ "status": "ok", "data": { "id", "url" } }` | + +Der Schlüssel steht **nackt** im `Authorization`-Kopf, ohne `Bearer` — genau so +wie bei Fivemanage. `Bearer …` geht weiterhin auch. + +```lua +-- vorher +exports['screenshot-basic']:requestScreenshotUpload( + 'https://api.fivemanage.com/api/image', 'image', + { headers = { Authorization = apiKey } }, cb) + +-- nachher — eine Zeile +exports['screenshot-basic']:requestScreenshotUpload( + 'https://fivemanage.d4rkst3r.de/api/image', 'image', + { headers = { Authorization = apiKey } }, cb) +``` + +**Wo die Dateien landen:** unter dem Präfix des Tokens (sonst `uploads/`), mit +dem Anfang des SHA-256 im Namen — `screenshots/shot-841814b4089b.png`. Das ist +Absicht: Bildschirmfotos heißen alle `screenshot.png`, und ohne eigenen Namen +je Aufruf überschriebe das zweite das erste. Gleicher Inhalt ergibt denselben +Namen, verschiedener Inhalt einen anderen — dieselbe Eigenschaft, die +Fivemanages ID auch hat. + +**Was NICHT übernommen wird:** `metadata` wird angenommen und ignoriert (es gibt +hier keine Spielerdaten an einer Datei), `retentionExempt` ebenso — dieser +Dienst löscht nichts von selbst. Presigned URLs gibt es nicht: der Upload geht +direkt hierher. + +> Beide Formen sind **aus echtem Code abgelesen**, nicht geraten: +> [fivemanage/sdk](https://github.com/fivemanage/sdk) für v3 und +> [Awleks/Devm-Camera](https://github.com/Awleks/Devm-Camera) für den älteren +> Weg über `screenshot-basic`. + +--- + ## Anmeldung: Token Alle Skript-Wege brauchen einen Token im Kopf: