RessourcenDateien

Dateien

Workspace-Dateien über die Talkturo API hochladen, abrufen und löschen — Dateispeicherung mit signierten URLs und kontobasierter Zugriffskontrolle verwalten.

const formData = new FormData();
formData.append("file", selectedFile);
formData.append("accountId", "acc_7f3a91c2");
formData.append("displayName", "Produktleitfaden.pdf");

const response = await fetch("/api/files", {
  method: "POST",
  credentials: "include",
  body: formData
});

const result = await response.json();
console.log(result);
{
  "data": {
    "id": "file_8c4d2e91",
    "name": "Produktleitfaden.pdf",
    "size": 184320,
    "file_type": "application/pdf",
    "created_at": "2026-09-12T14:32:18.000Z",
    "account_id": "acc_7f3a91c2"
  }
}
{
  "error": "file and accountId are required"
}
const params = new URLSearchParams({
  fileId: "file_8c4d2e91",
  accountId: "acc_7f3a91c2"
});

const response = await fetch(`/api/files?${params}`, {
  method: "GET",
  credentials: "include"
});

const result = await response.json();
window.open(result.url, "_blank");
{
  "url": "https://storage.example.invalid/object/sign/files/account/file_8c4d2e91?token=temporary-signature"
}
{
  "error": "fileId and accountId are required"
}
const params = new URLSearchParams({
  fileId: "file_8c4d2e91",
  accountId: "acc_7f3a91c2"
});

const response = await fetch(`/api/files?${params}`, {
  method: "DELETE",
  credentials: "include"
});

const result = await response.json();
console.log(result);
{
  "success": true
}
{
  "error": "fileId and accountId are required"
}

Dateien verwalten

Laden Sie Dateien für einen Workspace hoch, erzeugen Sie kurzlebige signierte URLs zum Abrufen und löschen Sie Dateien über die Talkturo API.

Alle Endpunkte erfordern eine authentifizierte Supabase-Websitzung. Der authentifizierte Benutzer muss entweder der primäre Eigentümer des Kontos sein oder über einen Eintrag in accounts_memberships Zugriff auf das Konto haben.

Dateien dürfen maximal 25 MB groß sein. Die API gibt weder den internen storage_path noch eine öffentliche URL zurück.

Datei hochladen

POST /api/files lädt eine Datei in den angegebenen Workspace hoch. Senden Sie die Daten als multipart/form-data.

Anforderung

body
fileFile
Required

Die hochzuladende Datei. Die maximale Dateigröße beträgt 25 MB.

body
accountIdstring
Required

Die ID des Zielkontos oder Workspace.

body
displayNamestring

Optionaler Anzeigename der Datei. Wenn Sie keinen Wert angeben, verwendet die API den ursprünglichen Dateinamen.

Antwort

Bei erfolgreicher Erstellung gibt die API die Metadaten der Datei zurück.

data.idstring
Required

Eindeutige ID der Datei.

data.namestring
Required

Anzeigename der Datei. Das Feld enthält displayName oder, falls nicht angegeben, den ursprünglichen Dateinamen.

data.sizenumber
Required

Dateigröße in Bytes.

data.file_typestring
Required

MIME-Typ der Datei, zum Beispiel application/pdf.

data.created_atstring
Required

Zeitpunkt der Erstellung als ISO-8601-Zeitstempel.

data.account_idstring
Required

ID des Kontos, dem die Datei zugeordnet ist.

Fehler

StatusUrsache
400file oder accountId fehlt, oder die Datei überschreitet 25 MB.
403Die Sitzung hat keinen Zugriff auf den angegebenen Workspace.
500Beim Speichern der Datei oder der Metadaten ist ein Fehler aufgetreten.

Signierte Datei-URL abrufen

GET /api/files erzeugt eine signierte Supabase-Storage-URL für eine Datei. Die URL ist 10 Minuten gültig.

Abfrageparameter

query
fileIdstring
Required

ID der abzurufenden Datei.

query
accountIdstring
Required

ID des Kontos oder Workspace, dem die Datei zugeordnet ist.

Antwort

urlstring
Required

Signierte URL zum Abrufen der Datei. Die URL ist 10 Minuten gültig und darf danach nicht weiterverwendet werden.

Speichern Sie die signierte URL nicht dauerhaft. Fordern Sie eine neue URL an, sobald die bestehende URL abgelaufen ist.

Fehler

StatusUrsache
400fileId oder accountId fehlt.
403Die Sitzung hat keinen Zugriff auf den Workspace.
404Die Datei existiert nicht oder gehört nicht zum angegebenen Konto.
500Die API konnte keine signierte URL erzeugen.

Datei löschen

DELETE /api/files löscht eine Datei aus dem Storage und entfernt den zugehörigen Datenbankeintrag.

Abfrageparameter

query
fileIdstring
Required

ID der zu löschenden Datei.

query
accountIdstring
Required

ID des Kontos oder Workspace, dem die Datei zugeordnet ist.

Antwort

successboolean
Required

true, wenn das Storage-Objekt und der Datenbankeintrag gelöscht wurden.

Fehler

StatusUrsache
400fileId oder accountId fehlt.
403Die Sitzung hat keinen Zugriff auf den Workspace.
404Die Datei existiert nicht oder gehört nicht zum angegebenen Konto.
500Beim Löschen des Datenbankeintrags ist ein Fehler aufgetreten.