@appotter/nestjs-s3
Version:
NestJS provider to integrates with AWS S3
39 lines (38 loc) • 1.13 kB
TypeScript
/// <reference types="multer" />
/// <reference types="node" />
import { CompleteMultipartUploadCommandOutput, DeleteObjectCommandOutput, ObjectCannedACL } from '@aws-sdk/client-s3';
import { FactoryProvider, ModuleMetadata } from '@nestjs/common';
export type Options = {
accessKeyId: string;
secretAccessKey: string;
region: string;
bucket: string;
acl?: ObjectCannedACL;
endpoint?: string;
};
export type OptionsAsync = {
useFactory: (...args: any[]) => Options | Promise<Options>;
} & Pick<ModuleMetadata, 'imports'> & Pick<FactoryProvider, 'inject'>;
export type ObjectAcl = ObjectCannedACL;
export type UploadedFile = Express.Multer.File;
export type UploadedResponse = {
url: string;
origin: CompleteMultipartUploadCommandOutput;
};
export type Item = {
key: string;
size: number;
lastModified: Date;
bucket: string;
};
export type ListedResponse = Item[];
export type GotResponse = {
key: string;
contentLength: number;
contentType: string;
body: Buffer;
};
export type DeletedResponse = {
status: boolean;
origin: DeleteObjectCommandOutput;
};