Initial changes for binary data management (#2105)

* introduce binary data management

* cr

* add binary data changes to awsS3 node

* add binary data changes to Box node

* add binary data changes to CiscoWebex node

* add binary data changes to HumaniticAi node

* add binary data changes to Jira node

* add binary data changes to Line node

* add binary data changes to MicrosoftOneDrive node

* add binary data changes to MicrosoftOutlook node

* add binary data changes to Mindee node

* add binary data changes to NocoDB node

* add binary data changes to Pushbullet node

* add binary data changes to Pushover node

* add binary data changes to Raindrop node

* add binary data changes to S3 node

* add binary data changes to Salesforce node

* add binary data changes to Ssh node

* add binary data changes to TheHive node

* add binary data changes to Twist node

* add binary data changes to Twitter node

* remove changes not needed right now

* 🐛 Fix issue with multiple runs

* 🐛 Revert fix and add support for multiple inputs

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
This commit is contained in:
Ahsan Virani
2021-08-20 18:08:40 +02:00
committed by GitHub
parent 7da86641d5
commit 178235e148
24 changed files with 103 additions and 66 deletions

View File

@@ -1,7 +1,5 @@
import {
BINARY_ENCODING,
IExecuteFunctions,
IExecuteSingleFunctions
} from 'n8n-core';
import {
IDataObject,
@@ -76,14 +74,16 @@ export class WriteBinaryFile implements INodeType {
throw new NodeOperationError(this.getNode(), `The binary property "${dataPropertyName}" does not exist. So no file can be written!`);
}
// Write the file to disk
await fsWriteFile(fileName, Buffer.from(item.binary[dataPropertyName].data, BINARY_ENCODING), 'binary');
const newItem: INodeExecutionData = {
json: {},
};
Object.assign(newItem.json, item.json);
const binaryDataBuffer = await this.helpers.getBinaryDataBuffer(itemIndex, dataPropertyName);
// Write the file to disk
await fsWriteFile(fileName, binaryDataBuffer, 'binary');
if (item.binary !== undefined) {
// Create a shallow copy of the binary data so that the old
// data references which do not get changed still stay behind
@@ -100,7 +100,7 @@ export class WriteBinaryFile implements INodeType {
} catch (error) {
if (this.continueOnFail()) {
returnData.push({json:{ error: error.message }});
returnData.push({ json: { error: error.message } });
continue;
}
throw error;