Fájlkezelés
Áttekintés
Szekció neve “Áttekintés”Az ElyOS fájlkezelése a src/lib/server/storage/ modulban van implementálva. A fájlok a szerveren tárolódnak, metaadataik az adatbázisban.
Remote functions
Szekció neve “Remote functions”A fájlkezelési műveletek remote functionökként érhetők el:
import { saveFile, listFiles, getFileMetadata, deleteFile} from '$lib/server/storage';Fájl feltöltése
Szekció neve “Fájl feltöltése”import { saveFile } from '$lib/server/storage/save-file.remote';
const result = await saveFile({ filename: 'document.pdf', content: base64Content, // base64 kódolt tartalom mimeType: 'application/pdf', directory: 'documents' // opcionális almappa});
if (result.success) { console.log(result.fileId); // az új fájl azonosítója console.log(result.url); // letöltési URL}Fájlok listázása
Szekció neve “Fájlok listázása”import { listFiles } from '$lib/server/storage/list-files.remote';
const result = await listFiles({ directory: 'documents', page: 1, pageSize: 20});
if (result.success) { console.log(result.data); // fájl metaadatok tömbje console.log(result.pagination); // lapozási adatok}Fájl metaadatok lekérése
Szekció neve “Fájl metaadatok lekérése”import { getFileMetadata } from '$lib/server/storage/get-file-metadata.remote';
const result = await getFileMetadata({ fileId: '123' });
if (result.success) { console.log(result.data.filename); console.log(result.data.size); console.log(result.data.mimeType); console.log(result.data.url);}Fájl törlése
Szekció neve “Fájl törlése”import { deleteFile } from '$lib/server/storage/delete-file.remote';
const result = await deleteFile({ fileId: '123' });API végpont
Szekció neve “API végpont”A fájlok a /api/files/ végponton keresztül is elérhetők:
GET /api/files/[fileId] # Fájl letöltésePOST /api/files/upload # Fájl feltöltéseDELETE /api/files/[fileId] # Fájl törléseFileUploader komponens
Szekció neve “FileUploader komponens”Az src/lib/components/file-uploader/ tartalmaz egy kész feltöltő komponenst:
<script lang="ts"> import FileUploader from '$lib/components/file-uploader/FileUploader.svelte';
function handleUpload(fileId: string, url: string) { console.log('Feltöltve:', fileId, url); }</script>
<FileUploader accept="image/*" maxSize={5 * 1024 * 1024} onUpload={handleUpload}/>Fájl repository
Szekció neve “Fájl repository”Közvetlen adatbázis-hozzáféréshez a fileRepository használható szerver oldali kódban:
import { fileRepository } from '$lib/server/storage/file-repository';
// Fájl metaadatok lekéréseconst file = await fileRepository.findById(fileId);
// Felhasználó fájljainak listázásaconst files = await fileRepository.findByUserId(userId);