@slickteam/nestjs-cellar
Version:
Module for Cellar with Nestjs
97 lines (70 loc) • 3.11 kB
Markdown
# @slickteam/nestjs-cellar
[](https://www.npmjs.com/package/@slickteam/nestjs-cellar)
[](https://opensource.org/licenses/MIT)
Module NestJS pour intégrer facilement [Cellar](https://www.clever-cloud.com/product/cellar/), le service de stockage S3 de Clever Cloud.
## Installation
```bash
npm install @slickteam/nestjs-cellar
# ou
pnpm add @slickteam/nestjs-cellar
```
## Configuration
Ajoutez les variables d'environnement suivantes :
| Variable | Requis | Défaut | Description |
| --------------------------- | ------ | ------ | -------------------------------------- |
| `CELLAR_HOST` | Oui | - | Endpoint Cellar |
| `CELLAR_KEY_ID` | Oui | - | Access Key ID |
| `CELLAR_KEY_SECRET` | Oui | - | Secret Access Key |
| `CELLAR_REGION` | Non | `fr` | Région du bucket |
| `CELLAR_TIMEOUT_SIGNED_URL` | Non | `3600` | Durée de validité des URLs signées (s) |
Exemple de fichier `.env` :
```env
CELLAR_HOST=cellar-c2.services.clever-cloud.com
CELLAR_KEY_ID=votre_key_id
CELLAR_KEY_SECRET=votre_key_secret
CELLAR_REGION=fr
CELLAR_TIMEOUT_SIGNED_URL=3600
```
## Utilisation
### Import du module
```ts
import { CellarModule } from '@slickteam/nestjs-cellar';
@Module({
imports: [CellarModule],
})
export class AppModule {}
```
### Injection du service
```ts
import { CellarService } from '@slickteam/nestjs-cellar';
@Injectable()
export class MyService {
constructor(private readonly cellarService: CellarService) {}
async uploadDocument(file: Express.Multer.File) {
return this.cellarService.uploadFile('mon-bucket', file);
}
}
```
## API
### `CellarService`
| Méthode | Description |
| ------------------------- | ----------------------------------------------- |
| `listObjectsByBucketName` | Liste les objets d'un bucket |
| `uploadFile` | Upload un fichier dans un bucket |
| `getFile` | Récupère un fichier depuis un bucket |
| `deleteFile` | Supprime un fichier d'un bucket |
| `fileExists` | Vérifie l'existence d'un fichier |
| `getSignedUrl` | Génère une URL signée pour accéder à un fichier |
### Propriétés exposées
- `s3Client` : Instance du client S3 pour des opérations avancées
- `s3EndPoint` : URL de l'endpoint Cellar
- `timeoutSignedUrl` : Durée de validité des URLs signées
## Dépendances
| Package | Version |
| ------------------------------- | -------- |
| `@nestjs/common` | `^11.0` |
| `@nestjs/config` | `^4.0` |
| `@aws-sdk/client-s3` | `^3.980` |
| `@aws-sdk/s3-request-presigner` | `^3.980` |
## Licence
MIT