@message-queue-toolkit/s3-payload-store
Version:
AWS S3-based message store implementation for message-queue-toolkit
31 lines (30 loc) • 1.11 kB
TypeScript
import type { Readable } from 'node:stream';
import type { S3 } from '@aws-sdk/client-s3';
import type { PayloadStore, SerializedPayload } from '@message-queue-toolkit/core';
export type S3AwareDependencies = {
s3?: S3;
};
export type MessageQueuePayloadOffloadingConfig = {
s3PayloadOffloadingBucket?: string;
messageSizeThreshold: number;
};
export declare function resolvePayloadStoreConfig(dependencies: S3AwareDependencies, config?: MessageQueuePayloadOffloadingConfig): {
store: S3PayloadStore;
storeName: string;
messageSizeThreshold: number;
} | undefined;
export type S3PayloadStoreDependencies = {
s3: S3;
};
export type S3PayloadStoreConfiguration = {
bucketName: string;
keyPrefix?: string;
};
export declare class S3PayloadStore implements PayloadStore {
private s3;
private readonly config;
constructor({ s3 }: S3PayloadStoreDependencies, config: S3PayloadStoreConfiguration);
storePayload(payload: SerializedPayload): Promise<string>;
retrievePayload(key: string): Promise<Readable | null>;
deletePayload(key: string): Promise<void>;
}