@russ-b/nestjs-common-tools 1.6.0 → 1.7.1

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.
@@ -1,4 +1,5 @@
1
1
  import { ModuleMetadata } from '@nestjs/common';
2
+ import { ObjectCannedACL } from '@aws-sdk/client-s3';
2
3
  export interface S3ModuleOptions {
3
4
  region?: string;
4
5
  endpoint: string;
@@ -11,3 +12,7 @@ export interface S3ModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
11
12
  global?: boolean;
12
13
  inject?: any[];
13
14
  }
15
+ export interface UploadParams {
16
+ bucket?: string;
17
+ acl?: ObjectCannedACL;
18
+ }
@@ -1,12 +1,15 @@
1
1
  import { S3Client } from '@aws-sdk/client-s3';
2
2
  import { Readable } from 'stream';
3
+ import { StreamingBlobPayloadInputTypes } from '@smithy/types/dist-types/streaming-payload/streaming-blob-payload-input-types';
4
+ import { UploadParams } from './s3.interface';
3
5
  export declare class S3Service {
4
6
  private readonly options;
5
7
  private readonly s3Client;
6
8
  private readonly logger;
7
9
  private readonly bucket;
8
10
  constructor(options: Record<string, string>, s3Client: S3Client);
9
- uploadObject(key: string, body: Buffer | Uint8Array | string, contentType?: string): Promise<void>;
11
+ upload(key: string, body: StreamingBlobPayloadInputTypes, contentType?: string, params?: UploadParams): Promise<void>;
12
+ uploadObject(key: string, body: StreamingBlobPayloadInputTypes, contentType?: string, params?: UploadParams): Promise<void>;
10
13
  deleteObject(key: string): Promise<void>;
11
14
  getObject(key: string): Promise<Readable>;
12
15
  }
@@ -16,6 +16,7 @@ exports.S3Service = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const client_s3_1 = require("@aws-sdk/client-s3");
18
18
  const s3_constants_1 = require("./s3.constants");
19
+ const lib_storage_1 = require("@aws-sdk/lib-storage");
19
20
  let S3Service = class S3Service {
20
21
  constructor(options, s3Client) {
21
22
  this.options = options;
@@ -23,13 +24,26 @@ let S3Service = class S3Service {
23
24
  this.logger = new common_1.Logger(this.constructor.name);
24
25
  this.bucket = this.options.bucket;
25
26
  }
26
- async uploadObject(key, body, contentType = 'application/octet-stream') {
27
+ async upload(key, body, contentType = 'application/octet-stream', params) {
28
+ const upload = new lib_storage_1.Upload({
29
+ client: this.s3Client,
30
+ params: {
31
+ Bucket: params?.bucket || this.bucket,
32
+ Key: key,
33
+ Body: body,
34
+ ContentType: contentType,
35
+ ACL: params?.acl || 'public-read',
36
+ },
37
+ });
38
+ await upload.done();
39
+ }
40
+ async uploadObject(key, body, contentType = 'application/octet-stream', params) {
27
41
  const command = new client_s3_1.PutObjectCommand({
28
- Bucket: this.bucket,
42
+ Bucket: params?.bucket || this.bucket,
29
43
  Key: key,
30
44
  Body: body,
31
45
  ContentType: contentType,
32
- ACL: 'public-read',
46
+ ACL: params?.acl || 'public-read',
33
47
  });
34
48
  try {
35
49
  await this.s3Client.send(command);
@@ -1 +1 @@
1
- {"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../../src/modules/s3/s3.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,kDAK4B;AAC5B,iDAA8D;AAIvD,IAAM,SAAS,GAAf,MAAM,SAAS;IAIpB,YAC6B,OAAgD,EACxD,QAAmC;QADV,YAAO,GAAP,OAAO,CAAwB;QACvC,aAAQ,GAAR,QAAQ,CAAU;QALvC,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAO1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,GAAW,EACX,IAAkC,EAClC,WAAW,GAAG,0BAA0B;QAExC,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,WAAW;YACxB,GAAG,EAAE,aAAa;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW;QAC5B,MAAM,OAAO,GAAG,IAAI,+BAAmB,CAAC;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;YAE1C,OAAO,QAAQ,CAAC,IAAgB,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAhEY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,eAAM,EAAC,gCAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,eAAM,EAAC,wBAAS,CAAC,CAAA;6CAA4B,oBAAQ;GAN7C,SAAS,CAgErB"}
1
+ {"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../../src/modules/s3/s3.service.ts"],"names":[],"mappings":"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"}