@slickteam/nestjs-cellar 1.2.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,45 +1,96 @@
1
- # Slick Nestjs Cellar
1
+ # @slickteam/nestjs-cellar
2
2
 
3
- Available on npmjs.org : [@slickteam/nestjs-cellar](https://www.npmjs.com/package/@slickteam/nestjs-cellar)
3
+ [![npm version](https://img.shields.io/npm/v/@slickteam/nestjs-cellar.svg)](https://www.npmjs.com/package/@slickteam/nestjs-cellar)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
5
 
5
- ## Usage
6
+ Module NestJS pour intégrer facilement [Cellar](https://www.clever-cloud.com/product/cellar/), le service de stockage S3 de Clever Cloud.
6
7
 
7
- - Install dependency
8
+ ## Installation
8
9
 
9
10
  ```bash
10
- npm i -S @slickteam/nestjs-cellar
11
+ npm install @slickteam/nestjs-cellar
12
+ # ou
13
+ pnpm add @slickteam/nestjs-cellar
11
14
  ```
12
15
 
13
- - In your environment file, add these lines :
16
+ ## Configuration
14
17
 
15
- ```conf
16
- CELLAR_ADDON_HOST=cellar-c2.services.clever-cloud.com
17
- CELLAR_ADDON_KEY_ID=
18
- CELLAR_ADDON_KEY_SECRET=
19
- CELLAR_ADDON_REGION=fr
20
- CELLAR_ADDON_TIMEOUT_SIGNED_URL=3600
18
+ Ajoutez les variables d'environnement suivantes :
19
+
20
+ | Variable | Requis | Défaut | Description |
21
+ | --------------------------- | ------ | ------ | -------------------------------------- |
22
+ | `CELLAR_HOST` | Oui | - | Endpoint Cellar |
23
+ | `CELLAR_KEY_ID` | Oui | - | Access Key ID |
24
+ | `CELLAR_KEY_SECRET` | Oui | - | Secret Access Key |
25
+ | `CELLAR_REGION` | Non | `fr` | Région du bucket |
26
+ | `CELLAR_TIMEOUT_SIGNED_URL` | Non | `3600` | Durée de validité des URLs signées (s) |
27
+
28
+ Exemple de fichier `.env` :
29
+
30
+ ```env
31
+ CELLAR_HOST=cellar-c2.services.clever-cloud.com
32
+ CELLAR_KEY_ID=votre_key_id
33
+ CELLAR_KEY_SECRET=votre_key_secret
34
+ CELLAR_REGION=fr
35
+ CELLAR_TIMEOUT_SIGNED_URL=3600
21
36
  ```
22
37
 
23
- - In module where you want use this module, add this :
38
+ ## Utilisation
39
+
40
+ ### Import du module
24
41
 
25
42
  ```ts
43
+ import { CellarModule } from '@slickteam/nestjs-cellar';
44
+
26
45
  @Module({
27
46
  imports: [CellarModule],
28
- controllers: [],
29
- providers: [],
30
- exports: [],
31
47
  })
32
- class ExempleModule {}
48
+ export class AppModule {}
33
49
  ```
34
50
 
35
- ## Dependencies version
51
+ ### Injection du service
52
+
53
+ ```ts
54
+ import { CellarService } from '@slickteam/nestjs-cellar';
55
+
56
+ @Injectable()
57
+ export class MyService {
58
+ constructor(private readonly cellarService: CellarService) {}
59
+
60
+ async uploadDocument(file: Express.Multer.File) {
61
+ return this.cellarService.uploadFile('mon-bucket', file);
62
+ }
63
+ }
64
+ ```
65
+
66
+ ## API
67
+
68
+ ### `CellarService`
69
+
70
+ | Méthode | Description |
71
+ | ------------------------- | ----------------------------------------------- |
72
+ | `listObjectsByBucketName` | Liste les objets d'un bucket |
73
+ | `uploadFile` | Upload un fichier dans un bucket |
74
+ | `getFile` | Récupère un fichier depuis un bucket |
75
+ | `deleteFile` | Supprime un fichier d'un bucket |
76
+ | `fileExists` | Vérifie l'existence d'un fichier |
77
+ | `getSignedUrl` | Génère une URL signée pour accéder à un fichier |
78
+
79
+ ### Propriétés exposées
80
+
81
+ - `s3Client` : Instance du client S3 pour des opérations avancées
82
+ - `s3EndPoint` : URL de l'endpoint Cellar
83
+ - `timeoutSignedUrl` : Durée de validité des URLs signées
36
84
 
37
- Nestjs
85
+ ## Dépendances
38
86
 
39
- - `@nestjs/common`: `^11.0.12`
40
- - `@nestjs/config`: `^4.0.1`
87
+ | Package | Version |
88
+ | ------------------------------- | -------- |
89
+ | `@nestjs/common` | `^11.0` |
90
+ | `@nestjs/config` | `^4.0` |
91
+ | `@aws-sdk/client-s3` | `^3.980` |
92
+ | `@aws-sdk/s3-request-presigner` | `^3.980` |
41
93
 
42
- Cellar (AWS)
94
+ ## Licence
43
95
 
44
- - `@aws-sdk/client-s3`: `^3.774.0`
45
- - `@aws-sdk/s3-request-presigner`: `^3.774.0`
96
+ MIT
@@ -1,7 +1,12 @@
1
1
  export interface CellarBucketObjectListContentItem {
2
2
  name: string;
3
- lastModified: string | Date;
3
+ lastModified: Date | undefined;
4
4
  eTag: string;
5
5
  size: number;
6
6
  storageClass: string;
7
7
  }
8
+ export interface CellarUploadFile {
9
+ buffer: Buffer;
10
+ mimetype: string;
11
+ originalname: string;
12
+ }
@@ -1,24 +1,16 @@
1
- import { GetObjectCommandOutput, ObjectCannedACL, S3Client, ServiceOutputTypes } from '@aws-sdk/client-s3';
1
+ import { DeleteObjectCommandOutput, GetObjectCommandOutput, ObjectCannedACL, PutObjectCommandOutput, S3Client } from '@aws-sdk/client-s3';
2
2
  import { ConfigService } from '@nestjs/config';
3
- import { CellarBucketObjectListContentItem } from './cellar.interface';
3
+ import { CellarBucketObjectListContentItem, CellarUploadFile } from './cellar.interface';
4
4
  export declare class CellarService {
5
5
  private configService;
6
6
  readonly timeoutSignedUrl: number;
7
7
  readonly s3EndPoint: string;
8
8
  readonly s3Client: S3Client;
9
9
  constructor(configService: ConfigService);
10
- listObjectsByBucketName(name: string): Promise<CellarBucketObjectListContentItem[]>;
11
- createPresignedUrlWithClient(bucketName: string, keyObject: string): Promise<string>;
12
- uploadFile(bucketName: string, file: {
13
- buffer: Buffer;
14
- mimetype: string;
15
- originalname: string;
16
- }, ACL?: ObjectCannedACL): Promise<ServiceOutputTypes>;
17
- deleteFile(bucketName: string, fileName: string): Promise<ServiceOutputTypes>;
18
- private getObjectMetadata;
19
- isFileExist(bucketName: string, fileName: string): Promise<boolean | never>;
20
- getSignedUrl(bucketName: string, fileName: string): Promise<string>;
10
+ listObjectsByBucketName(bucketName: string): Promise<CellarBucketObjectListContentItem[]>;
11
+ uploadFile(bucketName: string, file: CellarUploadFile, acl?: ObjectCannedACL): Promise<PutObjectCommandOutput>;
21
12
  getFile(bucketName: string, fileName: string): Promise<GetObjectCommandOutput>;
22
- uploadPdfToS3(bucketName: string, fileName: string, pdfBuffer: Buffer): Promise<void | never>;
23
- downloadPdfFromS3(bucketName: string, fileName: string): Promise<Buffer | never>;
13
+ deleteFile(bucketName: string, fileName: string): Promise<DeleteObjectCommandOutput>;
14
+ fileExists(bucketName: string, fileName: string): Promise<boolean>;
15
+ getSignedUrl(bucketName: string, fileName: string): Promise<string>;
24
16
  }
@@ -14,7 +14,6 @@ const client_s3_1 = require("@aws-sdk/client-s3");
14
14
  const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
15
15
  const common_1 = require("@nestjs/common");
16
16
  const config_1 = require("@nestjs/config");
17
- const logger = new common_1.Logger('CellarService');
18
17
  let CellarService = class CellarService {
19
18
  configService;
20
19
  timeoutSignedUrl;
@@ -22,81 +21,51 @@ let CellarService = class CellarService {
22
21
  s3Client;
23
22
  constructor(configService) {
24
23
  this.configService = configService;
25
- this.s3EndPoint = `https://${this.configService.getOrThrow('CELLAR_ADDON_HOST')}`;
26
- const regionBucket = this.configService.get('CELLAR_REGION') ?? 'fr';
24
+ this.s3EndPoint = `https://${this.configService.getOrThrow('CELLAR_HOST')}`;
27
25
  this.timeoutSignedUrl = this.configService.get('CELLAR_TIMEOUT_SIGNED_URL') ?? 3600;
28
26
  this.s3Client = new client_s3_1.S3Client({
29
27
  endpoint: this.s3EndPoint,
30
- region: regionBucket,
28
+ region: this.configService.get('CELLAR_REGION') ?? 'fr',
31
29
  credentials: {
32
- accessKeyId: this.configService.getOrThrow('CELLAR_ADDON_KEY_ID'),
33
- secretAccessKey: this.configService.getOrThrow('CELLAR_ADDON_KEY_SECRET'),
30
+ accessKeyId: this.configService.getOrThrow('CELLAR_KEY_ID'),
31
+ secretAccessKey: this.configService.getOrThrow('CELLAR_KEY_SECRET'),
34
32
  },
35
33
  });
36
34
  }
37
- async listObjectsByBucketName(name) {
38
- const result = await this.s3Client.send(new client_s3_1.ListObjectsV2Command({
39
- Bucket: name,
40
- }));
41
- return (result.Contents?.map((c) => ({
42
- name: c.Key ?? '',
43
- lastModified: c.LastModified ?? '',
44
- eTag: c.ETag ?? '',
45
- size: c.Size ?? 0,
46
- storageClass: c.StorageClass ?? '',
35
+ async listObjectsByBucketName(bucketName) {
36
+ const result = await this.s3Client.send(new client_s3_1.ListObjectsV2Command({ Bucket: bucketName }));
37
+ return (result.Contents?.map((object) => ({
38
+ name: object.Key ?? '',
39
+ lastModified: object.LastModified,
40
+ eTag: object.ETag ?? '',
41
+ size: object.Size ?? 0,
42
+ storageClass: object.StorageClass ?? '',
47
43
  })) ?? []);
48
44
  }
49
- async createPresignedUrlWithClient(bucketName, keyObject) {
50
- const command = new client_s3_1.GetObjectCommand({ Bucket: bucketName, Key: keyObject });
51
- return (0, s3_request_presigner_1.getSignedUrl)(this.s3Client, command, { expiresIn: this.timeoutSignedUrl });
52
- }
53
- async uploadFile(bucketName, file, ACL = 'bucket-owner-full-control') {
45
+ async uploadFile(bucketName, file, acl = 'bucket-owner-full-control') {
54
46
  return this.s3Client.send(new client_s3_1.PutObjectCommand({
55
47
  Bucket: bucketName,
56
48
  Key: file.originalname,
57
49
  Body: file.buffer,
58
- ACL,
50
+ ACL: acl,
59
51
  ContentType: file.mimetype,
60
52
  }));
61
53
  }
62
- async deleteFile(bucketName, fileName) {
63
- return this.s3Client.send(new client_s3_1.DeleteObjectCommand({
64
- Bucket: bucketName,
65
- Key: fileName,
66
- }));
54
+ async getFile(bucketName, fileName) {
55
+ return this.s3Client.send(new client_s3_1.GetObjectCommand({ Bucket: bucketName, Key: fileName }));
67
56
  }
68
- async getObjectMetadata(bucketName, fileName) {
69
- return this.s3Client.send(new client_s3_1.HeadObjectCommand({ Bucket: bucketName, Key: fileName }));
57
+ async deleteFile(bucketName, fileName) {
58
+ return this.s3Client.send(new client_s3_1.DeleteObjectCommand({ Bucket: bucketName, Key: fileName }));
70
59
  }
71
- async isFileExist(bucketName, fileName) {
72
- const result = await this.getObjectMetadata(bucketName, fileName);
73
- const code = result?.$metadata?.httpStatusCode ?? 500;
74
- return code >= 200 && code < 400;
60
+ async fileExists(bucketName, fileName) {
61
+ const result = await this.s3Client.send(new client_s3_1.HeadObjectCommand({ Bucket: bucketName, Key: fileName }));
62
+ const statusCode = result.$metadata.httpStatusCode ?? 500;
63
+ return statusCode >= 200 && statusCode < 400;
75
64
  }
76
65
  async getSignedUrl(bucketName, fileName) {
77
66
  const command = new client_s3_1.GetObjectCommand({ Bucket: bucketName, Key: fileName });
78
67
  return (0, s3_request_presigner_1.getSignedUrl)(this.s3Client, command, { expiresIn: this.timeoutSignedUrl });
79
68
  }
80
- async getFile(bucketName, fileName) {
81
- return this.s3Client.send(new client_s3_1.GetObjectCommand({ Bucket: bucketName, Key: fileName }));
82
- }
83
- async uploadPdfToS3(bucketName, fileName, pdfBuffer) {
84
- await this.uploadFile(bucketName, {
85
- buffer: pdfBuffer,
86
- originalname: fileName,
87
- mimetype: 'application/pdf',
88
- });
89
- }
90
- async downloadPdfFromS3(bucketName, fileName) {
91
- const resultCommand = await this.s3Client.send(new client_s3_1.GetObjectCommand({ Bucket: bucketName, Key: fileName }));
92
- const rawFileBytes = await resultCommand.Body?.transformToByteArray();
93
- if (rawFileBytes) {
94
- return Buffer.from(rawFileBytes);
95
- }
96
- else {
97
- throw new Error(`Error when downloading PDF from S3 with fileName[${fileName}]`);
98
- }
99
- }
100
69
  };
101
70
  exports.CellarService = CellarService;
102
71
  exports.CellarService = CellarService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"cellar.service.js","sourceRoot":"","sources":["../src/cellar.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cellar.service.js","sourceRoot":"","sources":["../src/cellar.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAW4B;AAC5B,wEAA6D;AAC7D,2CAA4C;AAC5C,2CAA+C;AAKxC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKG;IAJX,gBAAgB,CAAS;IACzB,UAAU,CAAS;IACnB,QAAQ,CAAW;IAEnC,YAA2B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QACrD,IAAI,CAAC,UAAU,GAAG,WAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,2BAA2B,CAAC,IAAI,IAAI,CAAC;QAC5F,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAQ,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI;YACvD,WAAW,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC;gBAC3D,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC;aACpE;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,UAAkB;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1F,OAAO,CACL,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;YACtB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YACtB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;SACxC,CAAC,CAAC,IAAI,EAAE,CACV,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,UAAkB,EAClB,IAAsB,EACtB,MAAuB,2BAA2B;QAElD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAI,4BAAgB,CAAC;YACnB,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,GAAG,EAAE,GAAG;YACR,WAAW,EAAE,IAAI,CAAC,QAAQ;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,QAAgB;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,QAAgB;QAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,QAAgB;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtG,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,IAAI,GAAG,CAAC;QAC1D,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QAC5D,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAA,mCAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACpF,CAAC;CACF,CAAA;AAjEY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAM+B,sBAAa;GAL5C,aAAa,CAiEzB"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { CellarBucketObjectListContentItem } from './cellar.interface';
1
+ import { CellarBucketObjectListContentItem, CellarUploadFile } from './cellar.interface';
2
2
  import { CellarService } from './cellar.service';
3
3
  declare class CellarModule {
4
4
  }
5
- export { CellarModule, CellarService, CellarBucketObjectListContentItem };
5
+ export { CellarModule, CellarService, CellarBucketObjectListContentItem, CellarUploadFile };