medusa-file-s3
Version:
AWS s3 file connector for Medusa
48 lines (47 loc) • 1.98 kB
TypeScript
/// <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;