File Utilities
File service class for handling file operations FileService
Description
This class provides methods for managing file uploads, retrieval, and deletion. It handles physical file storage and database metadata management.
Methods
getFileLink()
getFileLink(
fileId):Promise<string>
Gets the public URL for a file
Example
typescript
import { fileService } from '@modular-rest/server';
const url = await fileService.getFileLink('file123');
// Returns: '/assets/jpeg/profile/1234567890.jpeg'Parameters
| Parameter | Type | Description |
|---|---|---|
fileId | string | ID of the file |
Returns
Promise<string>
The public URL
getFilePath()
getFilePath(
fileId):Promise<string>
Gets the physical path for a file
Example
typescript
import { fileService } from '@modular-rest/server';
const path = await fileService.getFilePath('file123');
// Returns: '/uploads/jpeg/profile/1234567890.jpeg'Parameters
| Parameter | Type | Description |
|---|---|---|
fileId | string | ID of the file |
Returns
Promise<string>
The physical path
removeFile()
removeFile(
fileId):Promise<boolean>
Deletes a file from disc and database
Example
typescript
import { fileService } from '@modular-rest/server';
await fileService.removeFile('file123');Parameters
| Parameter | Type | Description |
|---|---|---|
fileId | string | ID of the file to delete |
Returns
Promise<boolean>
True if deletion was successful
Throws
If file is not found or deletion fails
storeFile()
storeFile(
options):Promise<IFile>
Stores a file on disc and creates metadata in database
Example
typescript
import { fileService } from '@modular-rest/server';
const file = await fileService.storeFile({
file: {
path: '/tmp/upload.jpg',
type: 'image/jpeg',
name: 'profile.jpg',
size: 1024
},
ownerId: 'user123',
tag: 'profile',
removeFileAfterStore: true
});Parameters
| Parameter | Type | Description |
|---|---|---|
options | StoreFileOptions | File storage options |
Returns
Promise<IFile>
The created file document
Throws
If upload directory is not set or storage fails