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)); } }