Files
docmost/apps/server/src/integrations/storage/storage.service.ts
T
Philip Okugbe de7982fe30 feat: copy page to different space (#1118)
* Add copy page to space endpoint
* copy storage function
* copy function
* feat: copy attachments too
* Copy page - WIP
* fix type
* sync
* cleanup
2025-04-30 14:43:16 +01:00

46 lines
1.4 KiB
TypeScript

import { Inject, Injectable, Logger } from '@nestjs/common';
import { STORAGE_DRIVER_TOKEN } from './constants/storage.constants';
import { StorageDriver } from './interfaces';
@Injectable()
export class StorageService {
private readonly logger = new Logger(StorageService.name);
constructor(
@Inject(STORAGE_DRIVER_TOKEN) private storageDriver: StorageDriver,
) {}
async upload(filePath: string, fileContent: Buffer | any) {
await this.storageDriver.upload(filePath, fileContent);
this.logger.debug(`File uploaded successfully. Path: ${filePath}`);
}
async copy(fromFilePath: string, toFilePath: string) {
await this.storageDriver.copy(fromFilePath, toFilePath);
this.logger.debug(`File copied successfully. Path: ${toFilePath}`);
}
async read(filePath: string): Promise<Buffer> {
return this.storageDriver.read(filePath);
}
async exists(filePath: string): Promise<boolean> {
return this.storageDriver.exists(filePath);
}
async getSignedUrl(path: string, expireIn: number): Promise<string> {
return this.storageDriver.getSignedUrl(path, expireIn);
}
getUrl(filePath: string): string {
return this.storageDriver.getUrl(filePath);
}
async delete(filePath: string): Promise<void> {
await this.storageDriver.delete(filePath);
}
getDriverName(): string {
return this.storageDriver.getDriverName();
}
}