UNPKG

@message-queue-toolkit/s3-payload-store

Version:

AWS S3-based message store implementation for message-queue-toolkit

31 lines (30 loc) 1.11 kB
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>; }