node-opcua-file-transfer 2.93.0 → 2.95.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/read_file.d.ts +3 -1
- package/dist/client/read_file.js +11 -3
- package/dist/client/read_file.js.map +1 -1
- package/dist/client/read_max_byte_string_length.d.ts +2 -0
- package/dist/client/read_max_byte_string_length.js +31 -0
- package/dist/client/read_max_byte_string_length.js.map +1 -0
- package/dist/client/write_file.js +17 -18
- package/dist/client/write_file.js.map +1 -1
- package/dist/server/file_type_helpers.js +11 -1
- package/dist/server/file_type_helpers.js.map +1 -1
- package/package.json +12 -10
- package/source/client/read_file.ts +15 -4
- package/source/client/read_max_byte_string_length.ts +20 -0
- package/source/client/write_file.ts +21 -19
- package/source/server/file_type_helpers.ts +16 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { IClientFile } from "./client_file";
|
|
3
|
-
export declare function readFile(clientFile: IClientFile
|
|
3
|
+
export declare function readFile(clientFile: IClientFile, options?: {
|
|
4
|
+
chunkSize?: number;
|
|
5
|
+
}): Promise<Buffer>;
|
|
4
6
|
export declare function readOPCUAFile(clientFile: IClientFile): Promise<Buffer>;
|
package/dist/client/read_file.js
CHANGED
|
@@ -12,15 +12,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.readOPCUAFile = exports.readFile = void 0;
|
|
13
13
|
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
14
14
|
const client_file_1 = require("./client_file");
|
|
15
|
-
|
|
15
|
+
const read_max_byte_string_length_1 = require("./read_max_byte_string_length");
|
|
16
|
+
function getTransportMaxMessageSize(session) {
|
|
17
|
+
return session.getTransportSettings ? session.getTransportSettings().maxMessageSize : 0;
|
|
18
|
+
}
|
|
19
|
+
function readFile(clientFile, options) {
|
|
16
20
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
options = options || { chunkSize: yield (0, read_max_byte_string_length_1.readMaxByteStringLength)(clientFile.session) };
|
|
22
|
+
let maxBlockSize = options.chunkSize || 1024;
|
|
23
|
+
const transportMaxSize = getTransportMaxMessageSize(clientFile.session);
|
|
24
|
+
maxBlockSize = transportMaxSize > 0 ? Math.min(maxBlockSize, transportMaxSize) : maxBlockSize;
|
|
17
25
|
yield clientFile.open(client_file_1.OpenFileMode.Read);
|
|
18
26
|
try {
|
|
19
27
|
const fileSize = (0, node_opcua_basic_types_1.coerceInt32)(yield clientFile.size());
|
|
20
28
|
/**
|
|
21
29
|
* Read file
|
|
22
30
|
*/
|
|
23
|
-
const data = yield clientFile.read(fileSize);
|
|
31
|
+
const data = yield clientFile.read(Math.min(fileSize, maxBlockSize));
|
|
24
32
|
if (data.length >= fileSize) {
|
|
25
33
|
// everything has been read
|
|
26
34
|
return data;
|
|
@@ -29,7 +37,7 @@ function readFile(clientFile) {
|
|
|
29
37
|
const chunks = [data];
|
|
30
38
|
let remaining = fileSize - data.length;
|
|
31
39
|
while (remaining > 0) {
|
|
32
|
-
const buf = yield clientFile.read(remaining);
|
|
40
|
+
const buf = yield clientFile.read(Math.min(remaining, maxBlockSize));
|
|
33
41
|
if (buf.length === 0)
|
|
34
42
|
break;
|
|
35
43
|
chunks.push(buf);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read_file.js","sourceRoot":"","sources":["../../source/client/read_file.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAAqD;
|
|
1
|
+
{"version":3,"file":"read_file.js","sourceRoot":"","sources":["../../source/client/read_file.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAAqD;AAErD,+CAA0D;AAC1D,+EAAwE;AAExE,SAAS,0BAA0B,CAAC,OAAsB;IACtD,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAsB,QAAQ,CAAC,UAAuB,EAAE,OAAgC;;QACpF,OAAO,GAAG,OAAO,IAAI,EAAE,SAAS,EAAE,MAAM,IAAA,qDAAuB,EAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtF,IAAI,YAAY,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC7C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxE,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAE9F,MAAM,UAAU,CAAC,IAAI,CAAC,0BAAY,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI;YACA,MAAM,QAAQ,GAAG,IAAA,oCAAW,EAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD;;eAEG;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;gBACzB,2BAA2B;gBAC3B,OAAO,IAAI,CAAC;aACf;YAED,wCAAwC;YACxC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YACvC,OAAO,SAAS,GAAG,CAAC,EAAE;gBAClB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM;gBAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC;aAC3B;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChC;gBAAS;YACN,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;SAC5B;IACL,CAAC;CAAA;AA/BD,4BA+BC;AAED,SAAsB,aAAa,CAAC,UAAuB;;QACvD,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;CAAA;AAFD,sCAEC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.readMaxByteStringLength = void 0;
|
|
13
|
+
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
14
|
+
const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
|
|
15
|
+
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
16
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
17
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
18
|
+
function readMaxByteStringLength(session) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const dataValue = yield session.read({
|
|
21
|
+
nodeId: (0, node_opcua_nodeid_1.resolveNodeId)(node_opcua_constants_1.VariableIds.Server_ServerCapabilities_MaxByteStringLength),
|
|
22
|
+
attributeId: node_opcua_basic_types_1.AttributeIds.Value
|
|
23
|
+
});
|
|
24
|
+
if (dataValue.statusCode !== node_opcua_status_code_1.StatusCodes.Good) {
|
|
25
|
+
return 1024;
|
|
26
|
+
}
|
|
27
|
+
return dataValue.value.value || node_opcua_binary_stream_1.BinaryStream.maxByteStringLength;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.readMaxByteStringLength = readMaxByteStringLength;
|
|
31
|
+
//# sourceMappingURL=read_max_byte_string_length.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read_max_byte_string_length.js","sourceRoot":"","sources":["../../source/client/read_max_byte_string_length.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAAsD;AACtD,uEAAwD;AACxD,+DAAmD;AACnD,yDAAkD;AAElD,mEAAqD;AAGrD,SAAuB,uBAAuB,CAAC,OAAsB;;QACjE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACjC,MAAM,EAAE,IAAA,iCAAa,EAAC,kCAAW,CAAC,6CAA6C,CAAC;YAChF,WAAW,EAAE,qCAAY,CAAC,KAAK;SAClC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,UAAU,KAAK,oCAAW,CAAC,IAAI,EAAE;YAC3C,OAAO,IAAI,CAAC;SACf;QACD,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,uCAAY,CAAC,mBAAmB,CAAC;IACrE,CAAC;CAAA;AATD,0DASC"}
|
|
@@ -13,45 +13,44 @@ exports.writeOPCUAFile = void 0;
|
|
|
13
13
|
const fs = require("node:fs");
|
|
14
14
|
const node_stream_1 = require("node:stream");
|
|
15
15
|
const promises_1 = require("node:stream/promises");
|
|
16
|
-
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
17
16
|
const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
|
|
18
|
-
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
19
17
|
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
20
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
21
18
|
const client_file_1 = require("./client_file");
|
|
19
|
+
const read_max_byte_string_length_1 = require("./read_max_byte_string_length");
|
|
22
20
|
const debugLog = (0, node_opcua_debug_1.make_debugLog)("FileType");
|
|
23
21
|
// const errorLog = make_errorLog("FileType");
|
|
24
22
|
// const warningLog = make_warningLog("FileType");
|
|
25
23
|
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)("FileType");
|
|
26
|
-
function
|
|
27
|
-
return
|
|
28
|
-
const dataValue = yield session.read({
|
|
29
|
-
nodeId: (0, node_opcua_nodeid_1.resolveNodeId)(node_opcua_constants_1.VariableIds.Server_ServerCapabilities_MaxByteStringLength),
|
|
30
|
-
attributeId: node_opcua_basic_types_1.AttributeIds.Value
|
|
31
|
-
});
|
|
32
|
-
if (dataValue.statusCode !== node_opcua_basic_types_1.StatusCodes.Good) {
|
|
33
|
-
return 1024;
|
|
34
|
-
}
|
|
35
|
-
return dataValue.value.value || node_opcua_binary_stream_1.BinaryStream.maxByteStringLength;
|
|
36
|
-
});
|
|
24
|
+
function getTransportMaxMessageSize(session) {
|
|
25
|
+
return session.getTransportSettings ? session.getTransportSettings().maxMessageSize : 0;
|
|
37
26
|
}
|
|
38
27
|
function writeOPCUAFile(clientFile, filePath, { chunkSize }) {
|
|
39
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const
|
|
29
|
+
const maxMessageSize = getTransportMaxMessageSize(clientFile.session);
|
|
30
|
+
chunkSize = chunkSize === undefined ? yield (0, read_max_byte_string_length_1.readMaxByteStringLength)(clientFile.session) : chunkSize;
|
|
31
|
+
chunkSize = Math.min(chunkSize, node_opcua_binary_stream_1.BinaryStream.maxByteStringLength);
|
|
32
|
+
if (maxMessageSize > 200) {
|
|
33
|
+
chunkSize = Math.min(chunkSize, maxMessageSize - 1000);
|
|
34
|
+
}
|
|
35
|
+
console.log("chunkSize = ", chunkSize, maxMessageSize);
|
|
41
36
|
if (!fs.existsSync(filePath)) {
|
|
42
37
|
throw new Error(`File ${filePath} does not exist`);
|
|
43
38
|
}
|
|
44
|
-
const readStream = fs.createReadStream(filePath, { highWaterMark:
|
|
39
|
+
const readStream = fs.createReadStream(filePath, { highWaterMark: chunkSize });
|
|
45
40
|
yield clientFile.open(client_file_1.OpenFileMode.WriteEraseExisting);
|
|
46
41
|
yield clientFile.setPosition(0);
|
|
47
42
|
try {
|
|
48
43
|
const outStream = new node_stream_1.Writable({
|
|
49
44
|
write(chunk, encoding, callback) {
|
|
45
|
+
console.log("chunk ==chunkSize = ", chunk.length);
|
|
50
46
|
doDebug && debugLog("writing chunk", chunk.length);
|
|
51
|
-
clientFile
|
|
47
|
+
clientFile
|
|
48
|
+
.write(chunk)
|
|
49
|
+
.then(() => callback())
|
|
50
|
+
.catch((err) => callback(err));
|
|
52
51
|
}
|
|
53
52
|
});
|
|
54
|
-
// note: pipeline requires NodeJS 15 or above
|
|
53
|
+
// note: pipeline requires NodeJS 15 or above
|
|
55
54
|
yield (0, promises_1.pipeline)(readStream, outStream);
|
|
56
55
|
}
|
|
57
56
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write_file.js","sourceRoot":"","sources":["../../source/client/write_file.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8BAA8B;AAC9B,6CAAuC;AACvC,mDAAgD;
|
|
1
|
+
{"version":3,"file":"write_file.js","sourceRoot":"","sources":["../../source/client/write_file.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8BAA8B;AAC9B,6CAAuC;AACvC,mDAAgD;AAGhD,uEAAwD;AAExD,uDAAiE;AAGjE,+CAA0D;AAC1D,+EAAwE;AAExE,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,8CAA8C;AAC9C,kDAAkD;AAClD,MAAM,OAAO,GAAG,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC;AAE3C,SAAS,0BAA0B,CAAC,OAAsB;IACtD,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAsB,cAAc,CAAC,UAAuB,EAAE,QAAgB,EAAE,EAAE,SAAS,EAA0B;;QACjH,MAAM,cAAc,GAAG,0BAA0B,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEtE,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,IAAA,qDAAuB,EAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,uCAAY,CAAC,mBAAmB,CAAC,CAAC;QAClE,IAAI,cAAc,GAAG,GAAG,EAAE;YACtB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC,CAAC;SAC1D;QACD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAEvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,iBAAiB,CAAC,CAAC;SACtD;QACD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/E,MAAM,UAAU,CAAC,IAAI,CAAC,0BAAY,CAAC,kBAAkB,CAAC,CAAC;QACvD,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI;YACA,MAAM,SAAS,GAAG,IAAI,sBAAQ,CAAC;gBAC3B,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;oBAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAClD,OAAO,IAAI,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnD,UAAU;yBACL,KAAK,CAAC,KAAK,CAAC;yBACZ,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;yBACtB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,CAAC;aACJ,CAAC,CAAC;YACH,6CAA6C;YAC7C,MAAM,IAAA,mBAAQ,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;SACzC;QAAC,OAAO,CAAC,EAAE;YACR,QAAQ,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,CAAC,CAAC;SACX;gBAAS;YACN,OAAO,IAAI,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAC9C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;SAC5B;IACL,CAAC;CAAA;AApCD,wCAoCC"}
|
|
@@ -16,6 +16,7 @@ exports.installFileType = exports.defaultMaxSize = exports.getFileData = exports
|
|
|
16
16
|
const util_1 = require("util");
|
|
17
17
|
const fsOrig = require("fs");
|
|
18
18
|
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
19
|
+
const node_opcua_address_space_base_1 = require("node-opcua-address-space-base");
|
|
19
20
|
const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
|
|
20
21
|
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
21
22
|
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
@@ -369,7 +370,7 @@ function _readFile(inputArguments, context) {
|
|
|
369
370
|
const fileHandle = inputArguments[0].value;
|
|
370
371
|
// Length Defines the length in bytes that should be returned in data, starting from the current
|
|
371
372
|
// position of the file handle. If the end of file is reached all data until the end of the file is
|
|
372
|
-
// returned.
|
|
373
|
+
// returned.
|
|
373
374
|
let length = inputArguments[1].value;
|
|
374
375
|
// Only positive values are allowed.
|
|
375
376
|
if (length < 0) {
|
|
@@ -384,6 +385,10 @@ function _readFile(inputArguments, context) {
|
|
|
384
385
|
// open mode did not specify Read Flag
|
|
385
386
|
return { statusCode: node_opcua_status_code_1.StatusCodes.BadInvalidState };
|
|
386
387
|
}
|
|
388
|
+
// Spec says that the the Server is allowed to return less data than specified length.
|
|
389
|
+
//
|
|
390
|
+
// In particular, we have to make sure that the number og bytes returned is not greater than
|
|
391
|
+
// the maxChunkSizeBytes specified in the server configuration.
|
|
387
392
|
// length cannot exceed maxChunkSizeBytes
|
|
388
393
|
const fileData = getFileDataFromContext(context);
|
|
389
394
|
const maxChunkSizeBytes = fileData.maxChunkSizeBytes;
|
|
@@ -394,6 +399,11 @@ function _readFile(inputArguments, context) {
|
|
|
394
399
|
if (length > node_opcua_binary_stream_1.BinaryStream.maxByteStringLength) {
|
|
395
400
|
length = node_opcua_binary_stream_1.BinaryStream.maxByteStringLength;
|
|
396
401
|
}
|
|
402
|
+
// length cannot either exceed transport OPCUA maxMessageLength - some margin.
|
|
403
|
+
const maxMessageSize = (0, node_opcua_address_space_base_1.getContextMaxMessageSize)(context) - 1024;
|
|
404
|
+
if (maxMessageSize > 0 && length > maxMessageSize) {
|
|
405
|
+
length = maxMessageSize;
|
|
406
|
+
}
|
|
397
407
|
// length cannot either exceed remaining buffer size from current position
|
|
398
408
|
length = Math.min(_fileInfo.size - _fileInfo.position[1], length);
|
|
399
409
|
const data = Buffer.alloc(length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file_type_helpers.js","sourceRoot":"","sources":["../../source/server/file_type_helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file_type_helpers.js","sourceRoot":"","sources":["../../source/server/file_type_helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-file-transfer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.95.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module -server",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc -b",
|
|
@@ -15,24 +15,26 @@
|
|
|
15
15
|
"npm": ">=8.x"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"node-opcua-address-space": "2.
|
|
18
|
+
"node-opcua-address-space": "2.95.0",
|
|
19
|
+
"node-opcua-address-space-base": "2.95.0",
|
|
19
20
|
"node-opcua-assert": "2.88.0",
|
|
20
21
|
"node-opcua-basic-types": "2.92.0",
|
|
21
22
|
"node-opcua-binary-stream": "2.90.1",
|
|
22
23
|
"node-opcua-constants": "2.88.0",
|
|
23
|
-
"node-opcua-data-model": "2.
|
|
24
|
+
"node-opcua-data-model": "2.95.0",
|
|
24
25
|
"node-opcua-debug": "2.90.1",
|
|
25
26
|
"node-opcua-nodeid": "2.90.1",
|
|
26
|
-
"node-opcua-pseudo-session": "2.
|
|
27
|
-
"node-opcua-service-call": "2.
|
|
28
|
-
"node-opcua-service-read": "2.
|
|
29
|
-
"node-opcua-service-translate-browse-path": "2.
|
|
27
|
+
"node-opcua-pseudo-session": "2.95.0",
|
|
28
|
+
"node-opcua-service-call": "2.95.0",
|
|
29
|
+
"node-opcua-service-read": "2.95.0",
|
|
30
|
+
"node-opcua-service-translate-browse-path": "2.95.0",
|
|
30
31
|
"node-opcua-status-code": "2.90.1",
|
|
31
|
-
"node-opcua-variant": "2.
|
|
32
|
+
"node-opcua-variant": "2.95.0"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"memfs": "^3.4.13",
|
|
35
|
-
"node-opcua
|
|
36
|
+
"node-opcua": "2.95.0",
|
|
37
|
+
"node-opcua-client": "2.95.0",
|
|
36
38
|
"node-opcua-leak-detector": "2.90.1",
|
|
37
39
|
"node-opcua-nodesets": "2.88.0",
|
|
38
40
|
"should": "^13.2.3"
|
|
@@ -52,5 +54,5 @@
|
|
|
52
54
|
"internet of things"
|
|
53
55
|
],
|
|
54
56
|
"homepage": "http://node-opcua.github.io/",
|
|
55
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "ad7086f9c4cd2ab52922e26cb6782ec6b86f9d20"
|
|
56
58
|
}
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import { coerceInt32 } from "node-opcua-basic-types";
|
|
2
|
+
import { IBasicSession } from "node-opcua-pseudo-session";
|
|
2
3
|
import { IClientFile, OpenFileMode } from "./client_file";
|
|
4
|
+
import { readMaxByteStringLength } from "./read_max_byte_string_length";
|
|
5
|
+
|
|
6
|
+
function getTransportMaxMessageSize(session: IBasicSession): number {
|
|
7
|
+
return session.getTransportSettings ? session.getTransportSettings().maxMessageSize : 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export async function readFile(clientFile: IClientFile, options?: { chunkSize?: number }): Promise<Buffer> {
|
|
11
|
+
options = options || { chunkSize: await readMaxByteStringLength(clientFile.session) };
|
|
12
|
+
let maxBlockSize = options.chunkSize || 1024;
|
|
13
|
+
const transportMaxSize = getTransportMaxMessageSize(clientFile.session);
|
|
14
|
+
maxBlockSize = transportMaxSize > 0 ? Math.min(maxBlockSize, transportMaxSize) : maxBlockSize;
|
|
3
15
|
|
|
4
|
-
export async function readFile(clientFile: IClientFile): Promise<Buffer> {
|
|
5
16
|
await clientFile.open(OpenFileMode.Read);
|
|
6
17
|
try {
|
|
7
18
|
const fileSize = coerceInt32(await clientFile.size());
|
|
8
19
|
/**
|
|
9
|
-
* Read file
|
|
20
|
+
* Read file
|
|
10
21
|
*/
|
|
11
|
-
const data = await clientFile.read(fileSize);
|
|
22
|
+
const data = await clientFile.read(Math.min(fileSize, maxBlockSize));
|
|
12
23
|
if (data.length >= fileSize) {
|
|
13
24
|
// everything has been read
|
|
14
25
|
return data;
|
|
@@ -18,7 +29,7 @@ export async function readFile(clientFile: IClientFile): Promise<Buffer> {
|
|
|
18
29
|
const chunks = [data];
|
|
19
30
|
let remaining = fileSize - data.length;
|
|
20
31
|
while (remaining > 0) {
|
|
21
|
-
const buf = await clientFile.read(remaining);
|
|
32
|
+
const buf = await clientFile.read(Math.min(remaining, maxBlockSize));
|
|
22
33
|
if (buf.length === 0) break;
|
|
23
34
|
chunks.push(buf);
|
|
24
35
|
remaining -= buf.length;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AttributeIds } from "node-opcua-basic-types";
|
|
2
|
+
import { BinaryStream } from "node-opcua-binary-stream";
|
|
3
|
+
import { VariableIds } from "node-opcua-constants";
|
|
4
|
+
import { resolveNodeId } from "node-opcua-nodeid";
|
|
5
|
+
import { IBasicSession } from "node-opcua-pseudo-session";
|
|
6
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export async function readMaxByteStringLength(session: IBasicSession): Promise<number> {
|
|
10
|
+
const dataValue = await session.read({
|
|
11
|
+
nodeId: resolveNodeId(VariableIds.Server_ServerCapabilities_MaxByteStringLength),
|
|
12
|
+
attributeId: AttributeIds.Value
|
|
13
|
+
});
|
|
14
|
+
if (dataValue.statusCode !== StatusCodes.Good) {
|
|
15
|
+
return 1024;
|
|
16
|
+
}
|
|
17
|
+
return dataValue.value.value || BinaryStream.maxByteStringLength;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
|
|
@@ -9,49 +9,51 @@ import { checkDebugFlag, make_debugLog } from "node-opcua-debug";
|
|
|
9
9
|
import { resolveNodeId } from "node-opcua-nodeid";
|
|
10
10
|
import { IBasicSession } from "node-opcua-pseudo-session";
|
|
11
11
|
import { IClientFile, OpenFileMode } from "./client_file";
|
|
12
|
+
import { readMaxByteStringLength } from "./read_max_byte_string_length";
|
|
12
13
|
|
|
13
14
|
const debugLog = make_debugLog("FileType");
|
|
14
15
|
// const errorLog = make_errorLog("FileType");
|
|
15
16
|
// const warningLog = make_warningLog("FileType");
|
|
16
17
|
const doDebug = checkDebugFlag("FileType");
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
nodeId: resolveNodeId(VariableIds.Server_ServerCapabilities_MaxByteStringLength),
|
|
21
|
-
attributeId: AttributeIds.Value
|
|
22
|
-
});
|
|
23
|
-
if (dataValue.statusCode !== StatusCodes.Good) {
|
|
24
|
-
return 1024;
|
|
25
|
-
}
|
|
26
|
-
return dataValue.value.value || BinaryStream.maxByteStringLength;
|
|
19
|
+
function getTransportMaxMessageSize(session: IBasicSession): number {
|
|
20
|
+
return session.getTransportSettings ? session.getTransportSettings().maxMessageSize : 0;
|
|
27
21
|
}
|
|
28
22
|
|
|
29
23
|
export async function writeOPCUAFile(clientFile: IClientFile, filePath: string, { chunkSize }: { chunkSize?: number }) {
|
|
24
|
+
const maxMessageSize = getTransportMaxMessageSize(clientFile.session);
|
|
30
25
|
|
|
31
|
-
|
|
26
|
+
chunkSize = chunkSize === undefined ? await readMaxByteStringLength(clientFile.session) : chunkSize;
|
|
27
|
+
chunkSize = Math.min(chunkSize, BinaryStream.maxByteStringLength);
|
|
28
|
+
if (maxMessageSize > 200) {
|
|
29
|
+
chunkSize = Math.min(chunkSize, maxMessageSize - 1000);
|
|
30
|
+
}
|
|
31
|
+
console.log("chunkSize = ", chunkSize, maxMessageSize);
|
|
32
32
|
|
|
33
33
|
if (!fs.existsSync(filePath)) {
|
|
34
34
|
throw new Error(`File ${filePath} does not exist`);
|
|
35
35
|
}
|
|
36
|
-
const readStream = fs.createReadStream(filePath, { highWaterMark:
|
|
36
|
+
const readStream = fs.createReadStream(filePath, { highWaterMark: chunkSize });
|
|
37
37
|
await clientFile.open(OpenFileMode.WriteEraseExisting);
|
|
38
38
|
await clientFile.setPosition(0);
|
|
39
39
|
try {
|
|
40
40
|
const outStream = new Writable({
|
|
41
41
|
write(chunk, encoding, callback) {
|
|
42
|
+
console.log("chunk ==chunkSize = ", chunk.length);
|
|
42
43
|
doDebug && debugLog("writing chunk", chunk.length);
|
|
43
|
-
clientFile
|
|
44
|
+
clientFile
|
|
45
|
+
.write(chunk)
|
|
46
|
+
.then(() => callback())
|
|
47
|
+
.catch((err) => callback(err));
|
|
44
48
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
});
|
|
50
|
+
// note: pipeline requires NodeJS 15 or above
|
|
51
|
+
await pipeline(readStream, outStream);
|
|
49
52
|
} catch (e) {
|
|
50
53
|
debugLog((e as Error).message);
|
|
51
54
|
throw e;
|
|
52
|
-
}
|
|
53
|
-
finally {
|
|
55
|
+
} finally {
|
|
54
56
|
doDebug && debugLog("closing the OPCUA File");
|
|
55
57
|
await clientFile.close();
|
|
56
58
|
}
|
|
57
|
-
}
|
|
59
|
+
}
|
|
@@ -6,6 +6,9 @@ import { callbackify, promisify } from "util";
|
|
|
6
6
|
import * as fsOrig from "fs";
|
|
7
7
|
|
|
8
8
|
import { assert } from "node-opcua-assert";
|
|
9
|
+
import {
|
|
10
|
+
getContextMaxMessageSize,
|
|
11
|
+
} from "node-opcua-address-space-base";
|
|
9
12
|
import {
|
|
10
13
|
AddressSpace,
|
|
11
14
|
IAddressSpace,
|
|
@@ -474,7 +477,8 @@ async function _readFile(this: UAMethod, inputArguments: Variant[], context: ISe
|
|
|
474
477
|
|
|
475
478
|
// Length Defines the length in bytes that should be returned in data, starting from the current
|
|
476
479
|
// position of the file handle. If the end of file is reached all data until the end of the file is
|
|
477
|
-
// returned.
|
|
480
|
+
// returned.
|
|
481
|
+
|
|
478
482
|
let length: Int32 = inputArguments[1].value as Int32;
|
|
479
483
|
|
|
480
484
|
// Only positive values are allowed.
|
|
@@ -482,6 +486,7 @@ async function _readFile(this: UAMethod, inputArguments: Variant[], context: ISe
|
|
|
482
486
|
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
483
487
|
}
|
|
484
488
|
|
|
489
|
+
|
|
485
490
|
|
|
486
491
|
const _fileInfo = _getFileInfo(addressSpace, context, fileHandle);
|
|
487
492
|
if (!_fileInfo) {
|
|
@@ -493,6 +498,10 @@ async function _readFile(this: UAMethod, inputArguments: Variant[], context: ISe
|
|
|
493
498
|
return { statusCode: StatusCodes.BadInvalidState };
|
|
494
499
|
}
|
|
495
500
|
|
|
501
|
+
// Spec says that the the Server is allowed to return less data than specified length.
|
|
502
|
+
//
|
|
503
|
+
// In particular, we have to make sure that the number og bytes returned is not greater than
|
|
504
|
+
// the maxChunkSizeBytes specified in the server configuration.
|
|
496
505
|
// length cannot exceed maxChunkSizeBytes
|
|
497
506
|
const fileData = getFileDataFromContext(context);
|
|
498
507
|
|
|
@@ -505,6 +514,12 @@ async function _readFile(this: UAMethod, inputArguments: Variant[], context: ISe
|
|
|
505
514
|
length = BinaryStream.maxByteStringLength;
|
|
506
515
|
}
|
|
507
516
|
|
|
517
|
+
// length cannot either exceed transport OPCUA maxMessageLength - some margin.
|
|
518
|
+
const maxMessageSize = getContextMaxMessageSize(context) - 1024;
|
|
519
|
+
if (maxMessageSize>0 && length > maxMessageSize) {
|
|
520
|
+
length = maxMessageSize;
|
|
521
|
+
}
|
|
522
|
+
|
|
508
523
|
// length cannot either exceed remaining buffer size from current position
|
|
509
524
|
length = Math.min(_fileInfo.size - _fileInfo.position[1], length);
|
|
510
525
|
|