@@ -18,6 +18,7 @@ import { Inject, Injectable, OnModuleInit, Type } from '@nestjs/common';
1818import { ModuleRef } from '@nestjs/core' ;
1919import { Request , Response } from 'express' ;
2020import mime from 'mime' ;
21+ import pLimit from 'p-limit' ;
2122import z from 'zod' ;
2223
2324import { AttachmentService } from '@/attachment/services/attachment.service' ;
@@ -230,18 +231,21 @@ export default abstract class ChannelHandler<
230231
231232 const metadatas = await this . getMessageAttachments ( event ) ;
232233 const subscriber = event . getInitiator ( ) ;
234+ const storageLimit = pLimit ( 4 ) ;
233235 const attachments = await Promise . all (
234- metadatas . map ( ( { file, name, type, size } ) => {
235- return this . attachmentService . store ( file , {
236- name : `${ name ? `${ name } -` : '' } ${ randomUUID ( ) } .${ mime . extension ( type ) } ` ,
237- type,
238- size,
239- resourceRef : AttachmentResourceRef . MessageAttachment ,
240- access : AttachmentAccess . Private ,
241- createdByRef : AttachmentCreatedByRef . Subscriber ,
242- createdBy : subscriber . id ,
243- } ) ;
244- } ) ,
236+ metadatas . map ( ( { file, name, type, size } ) =>
237+ storageLimit ( ( ) =>
238+ this . attachmentService . store ( file , {
239+ name : `${ name ? `${ name } -` : '' } ${ randomUUID ( ) } .${ mime . extension ( type ) } ` ,
240+ type,
241+ size,
242+ resourceRef : AttachmentResourceRef . MessageAttachment ,
243+ access : AttachmentAccess . Private ,
244+ createdByRef : AttachmentCreatedByRef . Subscriber ,
245+ createdBy : subscriber . id ,
246+ } ) ,
247+ ) ,
248+ ) ,
245249 ) ;
246250
247251 event . setPersistedAttachments ( attachments ) ;
0 commit comments