32 lines
1.5 KiB
TypeScript
32 lines
1.5 KiB
TypeScript
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<GetObjectCommandOutput> {
|
|
return this.s3Client.send(new GetObjectCommand(commandInput));
|
|
}
|
|
|
|
async putObject(commandInput: PutObjectCommandInput): Promise<PutObjectCommandOutput> {
|
|
return this.s3Client.send(new PutObjectCommand(commandInput));
|
|
}
|
|
|
|
async createMultiPartUpload(commandInput: CreateMultipartUploadCommandInput): Promise<CreateMultipartUploadCommandOutput> {
|
|
return this.s3Client.send(new CreateMultipartUploadCommand(commandInput));
|
|
}
|
|
|
|
async uploadPart(commandInput: UploadPartCommandInput): Promise<UploadPartCommandOutput> {
|
|
return this.s3Client.send(new UploadPartCommand(commandInput));
|
|
}
|
|
|
|
async completeMultiPartUpload(commandInput: CompleteMultipartUploadCommandInput): Promise<CompleteMultipartUploadCommandOutput> {
|
|
return this.s3Client.send(new CompleteMultipartUploadCommand(commandInput));
|
|
}
|
|
|
|
}
|