@medusajs/file-s3
Version:
S3 protocol file storage for Medusa. Supports any S3-compatible storage provider
36 lines • 1.59 kB
TypeScript
import { S3Client } from "@aws-sdk/client-s3";
import { FileTypes, Logger, S3FileServiceOptions } from "@medusajs/framework/types";
import { AbstractFileProviderService } from "@medusajs/framework/utils";
import { Readable } from "stream";
type InjectedDependencies = {
logger: Logger;
};
interface S3FileServiceConfig {
fileUrl: string;
accessKeyId?: string;
secretAccessKey?: string;
authenticationMethod?: "access-key" | "s3-iam-role";
region: string;
bucket: string;
prefix?: string;
endpoint?: string;
cacheControl?: string;
downloadFileDuration?: number;
additionalClientConfig?: Record<string, any>;
}
export declare class S3FileService extends AbstractFileProviderService {
static identifier: string;
protected config_: S3FileServiceConfig;
protected logger_: Logger;
protected client_: S3Client;
constructor({ logger }: InjectedDependencies, options: S3FileServiceOptions);
protected getClient(): S3Client;
upload(file: FileTypes.ProviderUploadFileDTO): Promise<FileTypes.ProviderFileResultDTO>;
delete(files: FileTypes.ProviderDeleteFileDTO | FileTypes.ProviderDeleteFileDTO[]): Promise<void>;
getPresignedDownloadUrl(fileData: FileTypes.ProviderGetFileDTO): Promise<string>;
getPresignedUploadUrl(fileData: FileTypes.ProviderGetPresignedUploadUrlDTO): Promise<FileTypes.ProviderFileResultDTO>;
getDownloadStream(file: FileTypes.ProviderGetFileDTO): Promise<Readable>;
getAsBuffer(file: FileTypes.ProviderGetFileDTO): Promise<Buffer>;
}
export {};
//# sourceMappingURL=s3-file.d.ts.map