t×tecexpressby TeKOcloud
ENv0.7.1
API & Datentypen / VUE

TxMemoryFileProvider.

Flüchtiger Datei-Provider mit rekursivem Kopieren/Löschen, Namensprüfung und Zyklusschutz; Daten überleben keinen Neustart.

Alle Dateioperationen sind asynchron. Ordner-IDs und Datei-IDs sind Strings, null als Eltern-/Ziel-ID bezeichnet die Wurzel. Ungültige Namen, Namenskollisionen, unbekannte IDs, doppelte IDs und Zyklen schlagen fehl. Kopieren erhält Inhalte, vergibt neue IDs und kopiert Unterordner. Entfernen löscht rekursiv. Ohne gespeicherten Inhalt ist der Download leer; Ordnerdownloads sind nicht möglich.

ts
new TxMemoryFileProvider(entries?: TxFileEntry[]): TxMemoryFileProvider
MitgliedTyp / RückgabeVerhalten
list(parentId: string | null, signal?: AbortSignal) => Promise<{ id: string; parentId: string | null; name: string; isDirectory: boolean; size?: number; modified?: Date; content?: Blob; }[]>Liefert Einträge des angegebenen Elternordners; null liest die Wurzel.
createDirectory(parentId: string | null, name: string) => Promise<{ id: string; parentId: string | null; name: string; isDirectory: boolean; size?: number; modified?: Date; content?: Blob; }>Legt einen Ordner mit gültigem, im Elternordner eindeutigem Namen an.
rename(id: string, name: string) => Promise<void>Benennt eine Datei oder einen Ordner um; ID und Elternordner bleiben erhalten.
move(id: string, target: string | null) => Promise<void>Verschiebt einen Eintrag in den Zielordner; Zyklen werden abgelehnt.
copy(id: string, target: string | null) => Promise<void>Kopiert einen Eintrag rekursiv in den Zielordner; neue IDs werden vergeben.
remove(id: string) => Promise<void>Löscht den Datensatz beziehungsweise rekursiv den Datei-/Ordnerbestand.
upload(parentId: string | null, file: File, signal?: AbortSignal) => Promise<{ id: string; parentId: string | null; name: string; size: number; isDirectory: boolean; content: Blob; modified: Date; }>Lädt eine Datei in den angegebenen Ordner; liefert den neuen Dateieintrag.
download(id: string) => Promise<Blob>Liefert Dateiinhalt; Ordnerdownloads schlagen fehl.
ts
import { TxMemoryFileProvider } from '@tekocloud.de/tecexpress'
const provider = new TxMemoryFileProvider()
const folder = await provider.createDirectory(null, 'Documents')
const file = await provider.upload(folder.id, new File(['Hello'], 'hello.txt'))
await provider.rename(file.id, 'renamed.txt')
await provider.copy(file.id, null)
await provider.move(file.id, null).catch(error => console.log(error.message)) // name collision
console.log(await provider.list(folder.id), await provider.download(file.id))
await provider.remove(folder.id) // recursive