UNPKG

medusa-file-s3

Version:

AWS s3 file connector for Medusa

48 lines (47 loc) 1.98 kB
/// <reference types="multer" /> /// <reference types="node" /> /// <reference types="node" /> import type { S3ClientConfigType } from "@aws-sdk/client-s3"; import { S3Client } from "@aws-sdk/client-s3"; import { AbstractFileService, IFileService } from "@medusajs/medusa"; import { DeleteFileType, FileServiceUploadResult, GetUploadedFileType, UploadStreamDescriptorType, Logger } from "@medusajs/types"; import stream from "stream"; declare class S3Service extends AbstractFileService implements IFileService { protected prefix_: string; protected bucket_: string; protected s3Url_: string; protected accessKeyId_: string; protected secretAccessKey_: string; protected region_: string; protected awsConfigObject_: any; protected downloadFileDuration_: number; protected cacheControl_: string; protected logger_: Logger; protected client_: S3Client; constructor({ logger }: { logger: any; }, options: any); protected getClient(overwriteConfig?: Partial<S3ClientConfigType>): S3Client; upload(file: Express.Multer.File): Promise<FileServiceUploadResult>; uploadProtected(file: Express.Multer.File): Promise<{ url: string; key: string; }>; uploadFile(file: Express.Multer.File, options?: { isProtected?: boolean; acl?: string; }): Promise<{ url: string; key: string; }>; delete(file: DeleteFileType): Promise<void>; getUploadStreamDescriptor(fileData: UploadStreamDescriptorType): Promise<{ writeStream: stream.PassThrough; promise: Promise<import("@aws-sdk/client-s3").AbortMultipartUploadCommandOutput | import("@aws-sdk/client-s3").CompleteMultipartUploadCommandOutput>; url: string; fileKey: string; }>; getDownloadStream(fileData: GetUploadedFileType): Promise<NodeJS.ReadableStream>; getPresignedDownloadUrl(fileData: GetUploadedFileType): Promise<string>; } export default S3Service;