diff --git a/s3.service.ts b/s3.service.ts new file mode 100644 index 0000000..5299ec4 --- /dev/null +++ b/s3.service.ts @@ -0,0 +1,31 @@ +import { CompleteMultipartUploadCommand, CompleteMultipartUploadCommandInput, CompleteMultipartUploadCommandOutput, CreateMultipartUploadCommand, CreateMultipartUploadCommandInput, CreateMultipartUploadCommandOutput, GetObjectCommand, GetObjectCommandInput, GetObjectCommandOutput, PutObjectCommand, PutObjectCommandInput, PutObjectCommandOutput, S3Client, UploadPartCommand, UploadPartCommandInput, UploadPartCommandOutput } from '@aws-sdk/client-s3'; +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class S3Service { + + constructor( + private readonly s3Client: S3Client, + ) { } + + async getObject(commandInput: GetObjectCommandInput): Promise { + return this.s3Client.send(new GetObjectCommand(commandInput)); + } + + async putObject(commandInput: PutObjectCommandInput): Promise { + return this.s3Client.send(new PutObjectCommand(commandInput)); + } + + async createMultiPartUpload(commandInput: CreateMultipartUploadCommandInput): Promise { + return this.s3Client.send(new CreateMultipartUploadCommand(commandInput)); + } + + async uploadPart(commandInput: UploadPartCommandInput): Promise { + return this.s3Client.send(new UploadPartCommand(commandInput)); + } + + async completeMultiPartUpload(commandInput: CompleteMultipartUploadCommandInput): Promise { + return this.s3Client.send(new CompleteMultipartUploadCommand(commandInput)); + } + +}