Installation et architecture
Factorydrive abstrait le stockage pour NestJS. Une application configure des disques nommés et utilise la même API avec le système de fichiers local, un stockage compatible S3, SFTP ou un driver personnalisé.
Prérequis
- Node.js 22 ou plus récent
- NestJS 6 à 11
- TypeScript 5
Installer le cœur
bash
npm install @ficsysfr/nestjs_module_factorydriveInstaller un driver satellite uniquement si l’application en a besoin :
bash
npm install @ficsysfr/nestjs_module_factorydrive-s3
npm install @ficsysfr/nestjs_module_factorydrive-sftpDirection des dépendances
Les services applicatifs injectent FactorydriveService. Pour les fichiers persistants, ils n’importent pas directement node:fs, S3Client ou un client SFTP.
text
Service métier
|
FactorydriveService
|
AbstractStorage
/ | \
local S3 SFTPFactorydriveService.getDisk() retourne le disque par défaut. Un disque nommé n’est utilisé que lorsqu’un cas d’usage cible volontairement une destination particulière.
Module minimal
ts
import { Module } from '@nestjs/common'
import { FactorydriveModule } from '@ficsysfr/nestjs_module_factorydrive'
@Module({
imports: [
FactorydriveModule.forRoot({
default: 'files',
disks: {
files: {
driver: 'local',
config: { root: `${process.cwd()}/storage` },
},
},
}),
],
})
export class AppModule {}Continuer avec la configuration ou la migration vers la version 2.0.