diff --git a/packages/core/src/BinaryDataManager/index.ts b/packages/core/src/BinaryDataManager/index.ts index a422ad4003..a019fdaddb 100644 --- a/packages/core/src/BinaryDataManager/index.ts +++ b/packages/core/src/BinaryDataManager/index.ts @@ -1,4 +1,3 @@ -import concatStream from 'concat-stream'; import { readFile, stat } from 'fs/promises'; import type { BinaryMetadata, IBinaryData, INodeExecutionData } from 'n8n-workflow'; import prettyBytes from 'pretty-bytes'; @@ -6,6 +5,7 @@ import type { Readable } from 'stream'; import { BINARY_ENCODING } from '../Constants'; import type { IBinaryDataConfig, IBinaryDataManager } from '../Interfaces'; import { BinaryDataFileSystem } from './FileSystem'; +import { binaryToBuffer } from './utils'; export class BinaryDataManager { static instance: BinaryDataManager | undefined; @@ -104,11 +104,7 @@ export class BinaryDataManager { fileSize, }); } else { - // Else fallback to storing this data in memory. - const buffer = await new Promise((resolve) => { - if (Buffer.isBuffer(input)) resolve(input); - else input.pipe(concatStream(resolve)); - }); + const buffer = await binaryToBuffer(input); binaryData.data = buffer.toString(BINARY_ENCODING); binaryData.fileSize = prettyBytes(buffer.length); } diff --git a/packages/core/src/BinaryDataManager/utils.ts b/packages/core/src/BinaryDataManager/utils.ts new file mode 100644 index 0000000000..85fb05f687 --- /dev/null +++ b/packages/core/src/BinaryDataManager/utils.ts @@ -0,0 +1,8 @@ +import concatStream from 'concat-stream'; +import type { Readable } from 'stream'; + +export const binaryToBuffer = async (body: Buffer | Readable) => + new Promise((resolve) => { + if (Buffer.isBuffer(body)) resolve(body); + else body.pipe(concatStream(resolve)); + }); diff --git a/packages/core/src/NodeExecuteFunctions.ts b/packages/core/src/NodeExecuteFunctions.ts index 96a752adcf..7d6b4648b2 100644 --- a/packages/core/src/NodeExecuteFunctions.ts +++ b/packages/core/src/NodeExecuteFunctions.ts @@ -149,7 +149,6 @@ const createFormDataObject = (data: Record) => { }); return formData; }; - function searchForHeader(headers: IDataObject, headerName: string) { if (headers === undefined) { return undefined;