w-ftp 1.0.0 → 1.0.3

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/docs/index.html CHANGED
@@ -27,7 +27,7 @@
27
27
 
28
28
  <nav >
29
29
 
30
- <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#WFtp">WFtp</a></li></ul>
30
+ <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#ftpCheckFile">ftpCheckFile</a></li><li><a href="global.html#ftpConn">ftpConn</a></li><li><a href="global.html#ftpDownload">ftpDownload</a></li><li><a href="global.html#ftpLs">ftpLs</a></li><li><a href="global.html#ftpQuit">ftpQuit</a></li><li><a href="global.html#ftpStateFile">ftpStateFile</a></li><li><a href="global.html#ftpSyncToLocal">ftpSyncToLocal</a></li><li><a href="global.html#ftpSyncToRemote">ftpSyncToRemote</a></li><li><a href="global.html#ftpUpload">ftpUpload</a></li><li><a href="global.html#WFtp">WFtp</a></li></ul>
31
31
  </nav>
32
32
 
33
33
  <div id="main">
@@ -68,7 +68,7 @@
68
68
  <br class="clear">
69
69
 
70
70
  <footer>
71
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Sat Jul 23 2022 13:03:06 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
71
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Sat Jul 23 2022 21:57:53 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
72
72
  </footer>
73
73
 
74
74
  <script>prettyPrint();</script>
@@ -27,7 +27,7 @@
27
27
 
28
28
  <nav >
29
29
 
30
- <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#WFtp">WFtp</a></li></ul>
30
+ <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#ftpCheckFile">ftpCheckFile</a></li><li><a href="global.html#ftpConn">ftpConn</a></li><li><a href="global.html#ftpDownload">ftpDownload</a></li><li><a href="global.html#ftpLs">ftpLs</a></li><li><a href="global.html#ftpQuit">ftpQuit</a></li><li><a href="global.html#ftpStateFile">ftpStateFile</a></li><li><a href="global.html#ftpSyncToLocal">ftpSyncToLocal</a></li><li><a href="global.html#ftpSyncToRemote">ftpSyncToRemote</a></li><li><a href="global.html#ftpUpload">ftpUpload</a></li><li><a href="global.html#WFtp">WFtp</a></li></ul>
31
31
  </nav>
32
32
 
33
33
  <div id="main">
@@ -912,7 +912,7 @@ module.exports = Ftp
912
912
  <br class="clear">
913
913
 
914
914
  <footer>
915
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Sat Jul 23 2022 13:03:06 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
915
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Sat Jul 23 2022 21:57:53 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
916
916
  </footer>
917
917
 
918
918
  <script>prettyPrint();</script>
package/g-download.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  import path from 'path'
2
2
  import fs from 'fs'
3
3
  import WFtp from './src/WFtp.mjs'
4
+ // import WFtp from './dist/w-ftp.umd.js'
4
5
 
5
6
 
6
7
  //st
package/g-upload.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  import path from 'path'
2
2
  import fs from 'fs'
3
3
  import WFtp from './src/WFtp.mjs'
4
+ // import WFtp from './dist/w-ftp.umd.js'
4
5
 
5
6
 
6
7
  //st
package/package.json CHANGED
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "name": "w-ftp",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "main": "dist/w-ftp.umd.js",
5
5
  "dependencies": {
6
+ "debug": "^4.3.4",
7
+ "ftp-response-parser": "^1.0.1",
8
+ "once": "^1.4.0",
9
+ "parse-listing": "^1.1.3",
10
+ "stream-combiner": "^0.2.2",
11
+ "unorm": "^1.6.0",
6
12
  "lodash": "^4.17.21",
7
- "wsemi": "^1.6.61"
13
+ "wsemi": "^1.6.69"
8
14
  },
9
15
  "devDependencies": {
10
16
  "w-package-tools": "^1.0.65"
@@ -27,4 +33,4 @@
27
33
  ],
28
34
  "author": "yuda-lyu(semisphere)",
29
35
  "license": "MIT"
30
- }
36
+ }
package/src/WFtp.mjs CHANGED
@@ -20,55 +20,513 @@ import fsTreeFolder from 'wsemi/src/fsTreeFolder.mjs'
20
20
  import fsIsFolder from 'wsemi/src/fsIsFolder.mjs'
21
21
  import fsIsFile from 'wsemi/src/fsIsFile.mjs'
22
22
  import fsCreateFolder from 'wsemi/src/fsCreateFolder.mjs'
23
- // import Jsftp from 'jsftp'
24
23
  import Jsftp from './jsftp.js'
25
- console.log('Jsftp', Jsftp)
26
24
 
27
25
 
28
26
  /**
29
- * 指定FTP伺服器資料夾內檔案並自動同步至本機,只能用於Windows作業系統
27
+ * 連線至FPT伺服器
30
28
  *
31
- * @param {String} fp 輸入檔案路徑字串
32
29
  * @param {Object} [opt={}] 輸入設定物件,預設{}
33
- * @param {String} [opt.ver='4.8'] 輸入調用windows程序之Net Framework版本字串,可有'4.5'、'4.6'、'4.7.2'與'4.8',預設'4.8'
34
- * @returns {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
30
+ * @param {String} opt.hostname='' 輸入hostname字串
31
+ * @param {Number} opt.port='' 輸入port正整數
32
+ * @param {String} opt.username='' 輸入帳號字串
33
+ * @param {String} opt.password='' 輸入密碼字串
34
+ * @return {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
35
35
  * @example
36
36
  * import WFtp from './src/WFtp.mjs'
37
37
  *
38
38
  * async function test() {
39
+ * let r
39
40
  *
40
- * //fp
41
- * let fp = './g.mseed'
42
- *
43
- * //WFtp
44
- * let r = await WFtp(fp)
45
- * console.log(r)
46
- * // [
47
- * // {
48
- * // name: 'SE.RST01.00.HNE.D.2020-09-17T013552.000000.csv',
49
- * // path: null,
50
- * // data: { heads: [Object], records: [Array] }
51
- * // },
52
- * // {
53
- * // name: 'SE.RST01.00.HNN.D.2020-09-17T013552.000000.csv',
54
- * // path: null,
55
- * // data: { heads: [Object], records: [Array] }
56
- * // },
57
- * // {
58
- * // name: 'SE.RST01.00.HNZ.D.2020-09-17T013552.000000.csv',
59
- * // path: null,
60
- * // data: { heads: [Object], records: [Array] }
61
- * // }
62
- * // ]
41
+ * let ftp = WFtp()
42
+ * // console.log('ftp', ftp)
43
+ *
44
+ * await ftp.conn({
45
+ * hostname: st.up.hostname,
46
+ * port: st.up.port,
47
+ * username: st.up.username,
48
+ * password: st.up.password,
49
+ * })
50
+ *
51
+ * //actions
52
+ *
53
+ * r = await ftp.quit()
54
+ * console.log('ftp.quit', r)
55
+ *
56
+ * }
57
+ * test()
58
+ * .catch((err) => {
59
+ * console.log(err)
60
+ * })
61
+ *
62
+ */
63
+ async function ftpConn(opt = {}) {
64
+ return null
65
+ }
66
+
67
+
68
+ /**
69
+ * 遍歷伺服器上指定資料夾內檔案清單資訊
70
+ *
71
+ * @param {String} opt.fdRemote 輸入伺服器上指定資料夾字串
72
+ * @return {Promise} 回傳Promise,resolve回傳檔案清單資訊,reject回傳錯誤訊息
73
+ * @example
74
+ * import WFtp from './src/WFtp.mjs'
75
+ *
76
+ * async function test() {
77
+ * let r
78
+ *
79
+ * let ftp = WFtp()
80
+ * // console.log('ftp', ftp)
81
+ *
82
+ * await ftp.conn({
83
+ * hostname: st.up.hostname,
84
+ * port: st.up.port,
85
+ * username: st.up.username,
86
+ * password: st.up.password,
87
+ * })
88
+ *
89
+ * let fps = await ftp.ls('.')
90
+ * console.log('ftp.ls', fps[0], fps.length)
91
+ *
92
+ * r = await ftp.quit()
93
+ * console.log('ftp.quit', r)
94
+ *
95
+ * }
96
+ * test()
97
+ * .catch((err) => {
98
+ * console.log(err)
99
+ * })
100
+ *
101
+ */
102
+ async function ftpLs(fdRemote = '.') {
103
+ return null
104
+ }
105
+
106
+
107
+ /**
108
+ * 關閉與伺服器連線
109
+ *
110
+ * @return {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
111
+ * @example
112
+ * import WFtp from './src/WFtp.mjs'
113
+ *
114
+ * async function test() {
115
+ * let r
116
+ *
117
+ * let ftp = WFtp()
118
+ * // console.log('ftp', ftp)
119
+ *
120
+ * await ftp.conn({
121
+ * hostname: st.up.hostname,
122
+ * port: st.up.port,
123
+ * username: st.up.username,
124
+ * password: st.up.password,
125
+ * })
126
+ *
127
+ * //actions
128
+ *
129
+ * r = await ftp.quit()
130
+ * console.log('ftp.quit', r)
131
+ *
132
+ * }
133
+ * test()
134
+ * .catch((err) => {
135
+ * console.log(err)
136
+ * })
137
+ */
138
+ async function ftpQuit() {
139
+ return null
140
+ }
141
+
142
+
143
+ /**
144
+ * 取得伺服器指定檔案資訊
145
+ *
146
+ * @param {String} opt.fpRemote 輸入伺服器上指定檔案字串
147
+ * @return {Promise} 回傳Promise,resolve回傳檔案資訊,reject回傳錯誤訊息
148
+ * @example
149
+ * import WFtp from './src/WFtp.mjs'
150
+ *
151
+ * async function test() {
152
+ * let r
153
+ *
154
+ * let ftp = WFtp()
155
+ * // console.log('ftp', ftp)
156
+ *
157
+ * await ftp.conn({
158
+ * hostname: st.up.hostname,
159
+ * port: st.up.port,
160
+ * username: st.up.username,
161
+ * password: st.up.password,
162
+ * })
163
+ *
164
+ * r = await ftp.stateFile('./_test_upload_client/DECL_20210805055044.csv')
165
+ * console.log('ftp.stateFile', r)
166
+ *
167
+ * r = await ftp.quit()
168
+ * console.log('ftp.quit', r)
63
169
  *
64
170
  * }
65
171
  * test()
66
172
  * .catch((err) => {
67
- * console.log('catch', err)
173
+ * console.log(err)
174
+ * })
175
+ */
176
+ async function ftpStateFile(fpRemote) {
177
+ return null
178
+ }
179
+
180
+
181
+ /**
182
+ * 確認伺服器指定檔案是否存在
183
+ *
184
+ * @param {String} opt.fpRemote 輸入伺服器上指定檔案字串
185
+ * @return {Promise} 回傳Promise,resolve回傳指定檔案是否存在布林值,reject回傳錯誤訊息
186
+ * @example
187
+ * import WFtp from './src/WFtp.mjs'
188
+ *
189
+ * async function test() {
190
+ * let r
191
+ *
192
+ * let ftp = WFtp()
193
+ * // console.log('ftp', ftp)
194
+ *
195
+ * await ftp.conn({
196
+ * hostname: st.up.hostname,
197
+ * port: st.up.port,
198
+ * username: st.up.username,
199
+ * password: st.up.password,
68
200
  * })
69
201
  *
202
+ * r = await ftp.checkFile('./_test_upload_client/DECL_20210805055044.csv')
203
+ * console.log('ftp.checkFile', r)
204
+ *
205
+ * r = await ftp.quit()
206
+ * console.log('ftp.quit', r)
207
+ *
208
+ * }
209
+ * test()
210
+ * .catch((err) => {
211
+ * console.log(err)
212
+ * })
213
+ */
214
+ async function ftpCheckFile(fpRemote) {
215
+ return null
216
+ }
217
+
218
+
219
+ /**
220
+ * 下載伺服器指定檔案至本機
221
+ *
222
+ * @param {String} opt.fpRemote 輸入伺服器上指定檔案字串
223
+ * @param {String} opt.fpLocal 輸入本機指定檔案字串
224
+ * @param {Function} [opt.cbProcess=null] 輸入回調進度函數
225
+ * @return {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
226
+ * @example
227
+ * import WFtp from './src/WFtp.mjs'
228
+ *
229
+ * async function test() {
230
+ * let r
231
+ *
232
+ * let ftp = WFtp()
233
+ * // console.log('ftp', ftp)
234
+ *
235
+ * await ftp.conn({
236
+ * hostname: st.up.hostname,
237
+ * port: st.up.port,
238
+ * username: st.up.username,
239
+ * password: st.up.password,
240
+ * })
241
+ *
242
+ * r = await ftp.download('./DECL_20210805055044.csv', './_test_download_client/DECL_20210805055044.csv', (p) => {
243
+ * console.log('ftp.download p', p.name, p.progress)
244
+ * })
245
+ * console.log('ftp.download', r)
246
+ *
247
+ * r = await ftp.quit()
248
+ * console.log('ftp.quit', r)
249
+ *
250
+ * }
251
+ * test()
252
+ * .catch((err) => {
253
+ * console.log(err)
254
+ * })
255
+ */
256
+ async function ftpDownload(fpRemote, fpLocal, cbProcess = null) {
257
+ return null
258
+ }
259
+
260
+
261
+ /**
262
+ * 上傳本機指定檔案至伺服器
263
+ *
264
+ * @param {String} opt.fpLocal 輸入本機指定檔案字串
265
+ * @param {String} opt.fpRemote 輸入伺服器上指定檔案字串
266
+ * @param {Function} [opt.cbProcess=null] 輸入回調進度函數
267
+ * @return {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
268
+ * @example
269
+ * import WFtp from './src/WFtp.mjs'
270
+ *
271
+ * async function test() {
272
+ * let r
273
+ *
274
+ * let ftp = WFtp()
275
+ * // console.log('ftp', ftp)
276
+ *
277
+ * await ftp.conn({
278
+ * hostname: st.up.hostname,
279
+ * port: st.up.port,
280
+ * username: st.up.username,
281
+ * password: st.up.password,
282
+ * })
283
+ *
284
+ * r = await ftp.upload('./_test_upload_client/DECL_20210805055044.csv', './DECL_20210805055044.csv', (p) => {
285
+ * console.log('ftp.upload p', p.name, p.progress)
286
+ * })
287
+ * console.log('ftp.upload', r)
288
+ *
289
+ * r = await ftp.quit()
290
+ * console.log('ftp.quit', r)
291
+ *
292
+ * }
293
+ * test()
294
+ * .catch((err) => {
295
+ * console.log(err)
296
+ * })
297
+ */
298
+ async function ftpUpload(fpLocal, fpRemote, cbProcess) {
299
+ return null
300
+ }
301
+
302
+
303
+ /**
304
+ * 同步伺服器上指定資料夾內檔案至本機
305
+ *
306
+ * @param {String} opt.fdRemote 輸入伺服器上指定資料夾字串
307
+ * @param {String} opt.fdLocal 輸入本機指定資料夾字串
308
+ * @param {Function} [opt.cbProcess=null] 輸入回調進度函數
309
+ * @return {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
310
+ * @example
311
+ * import WFtp from './src/WFtp.mjs'
312
+ *
313
+ * async function test() {
314
+ * let r
315
+ *
316
+ * let ftp = WFtp()
317
+ * // console.log('ftp', ftp)
318
+ *
319
+ * await ftp.conn({
320
+ * hostname: st.up.hostname,
321
+ * port: st.up.port,
322
+ * username: st.up.username,
323
+ * password: st.up.password,
324
+ * })
325
+ *
326
+ * r = await ftp.syncToLocal('.', './_test_download_client', (p) => {
327
+ * console.log('ftp.syncToLocal p', p.name, p.progress)
328
+ * })
329
+ * console.log('ftp.syncToLocal', r)
330
+ *
331
+ * r = await ftp.quit()
332
+ * console.log('ftp.quit', r)
333
+ *
334
+ * }
335
+ * test()
336
+ * .catch((err) => {
337
+ * console.log(err)
338
+ * })
339
+ */
340
+ async function ftpSyncToLocal(fdRemote, fdLocal, cbProcess) {
341
+ return null
342
+ }
343
+
344
+
345
+ /**
346
+ * 同步本機指定資料夾內檔案至伺服器
347
+ *
348
+ * @param {String} opt.fdLocal 輸入本機指定資料夾字串
349
+ * @param {String} opt.fdRemote 輸入伺服器上指定資料夾字串
350
+ * @param {Function} [opt.cbProcess=null] 輸入回調進度函數
351
+ * @return {Promise} 回傳Promise,resolve回傳成功訊息,reject回傳錯誤訊息
352
+ * @example
353
+ * import WFtp from './src/WFtp.mjs'
354
+ *
355
+ * async function test() {
356
+ * let r
357
+ *
358
+ * let ftp = WFtp()
359
+ * // console.log('ftp', ftp)
360
+ *
361
+ * await ftp.conn({
362
+ * hostname: st.up.hostname,
363
+ * port: st.up.port,
364
+ * username: st.up.username,
365
+ * password: st.up.password,
366
+ * })
367
+ *
368
+ * r = await ftp.syncToRemote('./_test_upload_client', '.', (p) => {
369
+ * console.log('ftp.syncToRemote p', p.name, p.progress)
370
+ * })
371
+ * console.log('ftp.syncToRemote', r)
372
+ *
373
+ * r = await ftp.quit()
374
+ * console.log('ftp.quit', r)
375
+ *
376
+ * }
377
+ * test()
378
+ * .catch((err) => {
379
+ * console.log(err)
380
+ * })
381
+ */
382
+ async function ftpSyncToRemote(fdLocal, fdRemote, cbProcess) {
383
+ return null
384
+ }
385
+
386
+
387
+ /**
388
+ * 操作FTP,包含連線、下載、資料夾內檔案同步下載、上傳、資料夾內檔案同步上傳等功能
389
+ *
390
+ * @returns {Object} 回傳FTP操作物件,包含conn、ls、stateFile、checkFile、download、syncToLocal、syncToRemote、upload、quit。
391
+ * @example
392
+ * import WFtp from './src/WFtp.mjs'
393
+ *
394
+ * async function test_up() {
395
+ * let r
396
+ *
397
+ * let ftp = WFtp()
398
+ * // console.log('ftp', ftp)
399
+ *
400
+ * await ftp.conn({
401
+ * hostname: `{hostname}`,
402
+ * port: `{port}`,
403
+ * username: `{username}`,
404
+ * password: `{password}`,
405
+ * })
406
+ *
407
+ * let fps = await ftp.ls('.')
408
+ * console.log('ftp.ls', fps[0], fps.length)
409
+ *
410
+ * r = await ftp.upload('./_test_upload_client/DECL_20210805055044.csv', './DECL_20210805055044.csv', (p) => {
411
+ * console.log('ftp.upload p', p.name, p.progress)
412
+ * })
413
+ * console.log('ftp.upload', r)
414
+ *
415
+ * r = await ftp.syncToRemote('./_test_upload_client', '.', (p) => {
416
+ * console.log('ftp.syncToRemote p', p.name, p.progress)
417
+ * })
418
+ * console.log('ftp.syncToRemote', r)
419
+ *
420
+ * r = await ftp.quit()
421
+ * console.log('ftp.quit', r)
422
+ *
423
+ * }
424
+ * test_up()
425
+ * .catch((err) => {
426
+ * console.log(err)
427
+ * })
428
+ * // ftp.ls {
429
+ * // name: 'DECL_202108.csv',
430
+ * // type: 0,
431
+ * // time: 1658366760000,
432
+ * // size: '218690',
433
+ * // owner: 'ftp',
434
+ * // group: 'ftp',
435
+ * // userPermissions: { read: true, write: true, exec: false },
436
+ * // groupPermissions: { read: true, write: true, exec: false },
437
+ * // otherPermissions: { read: true, write: true, exec: false }
438
+ * // } 73
439
+ * // ftp.upload p DECL_20210805055044.csv 75.71339448693362
440
+ * // drain
441
+ * // ftp.upload p DECL_20210805055044.csv 100
442
+ * // ftp.upload ok
443
+ * // ftp.syncToRemote { num: 0, files: [] }
444
+ * // ftp.quit { code: 221, text: '221 Goodbye.', isMark: false, isError: false }
445
+ *
446
+ * async function test_dw() {
447
+ * let r
448
+ *
449
+ * let ftp = WFtp()
450
+ * // console.log('ftp', ftp)
451
+ *
452
+ * await ftp.conn({
453
+ * hostname: `{hostname}`,
454
+ * port: `{port}`,
455
+ * username: `{username}`,
456
+ * password: `{password}`,
457
+ * })
458
+ *
459
+ * let fps = await ftp.ls('.')
460
+ * console.log('ftp.ls', fps[0], fps.length)
461
+ *
462
+ * r = await ftp.download('./DECL_20210805055044.csv', './_test_download_client/DECL_20210805055044.csv', (p) => {
463
+ * console.log('ftp.download p', p.name, p.progress)
464
+ * })
465
+ * console.log('ftp.download', r)
466
+ *
467
+ * r = await ftp.syncToLocal('.', './_test_download_client', (p) => {
468
+ * console.log('ftp.syncToLocal p', p.name, p.progress)
469
+ * })
470
+ * console.log('ftp.syncToLocal', r)
471
+ *
472
+ * r = await ftp.quit()
473
+ * console.log('ftp.quit', r)
474
+ *
475
+ * }
476
+ * test_dw()
477
+ * .catch((err) => {
478
+ * console.log(err)
479
+ * })
480
+ * // ftp.ls {
481
+ * // name: 'DECL_202108.csv',
482
+ * // type: 0,
483
+ * // time: 1658302140000,
484
+ * // size: '218690',
485
+ * // owner: 'ftp',
486
+ * // group: 'ftp',
487
+ * // userPermissions: { read: true, write: true, exec: false },
488
+ * // groupPermissions: { read: true, write: true, exec: false },
489
+ * // otherPermissions: { read: true, write: true, exec: false }
490
+ * // } 74
491
+ * // ftp.download p DECL_20210805055044.csv 4.7320871554333515
492
+ * // ftp.download p DECL_20210805055044.csv 9.464174310866703
493
+ * // ftp.download p DECL_20210805055044.csv 14.196261466300053
494
+ * // ftp.download p DECL_20210805055044.csv 18.928348621733406
495
+ * // ftp.download p DECL_20210805055044.csv 23.660435777166754
496
+ * // ftp.download p DECL_20210805055044.csv 28.392522932600105
497
+ * // ftp.download p DECL_20210805055044.csv 33.12461008803346
498
+ * // ftp.download p DECL_20210805055044.csv 37.85669724346681
499
+ * // ftp.download p DECL_20210805055044.csv 42.58878439890016
500
+ * // ftp.download p DECL_20210805055044.csv 47.32087155433351
501
+ * // ftp.download p DECL_20210805055044.csv 52.05295870976686
502
+ * // ftp.download p DECL_20210805055044.csv 56.78504586520021
503
+ * // ftp.download p DECL_20210805055044.csv 61.517133020633565
504
+ * // ftp.download p DECL_20210805055044.csv 66.24922017606691
505
+ * // ftp.download p DECL_20210805055044.csv 70.98130733150026
506
+ * // ftp.download p DECL_20210805055044.csv 75.71339448693362
507
+ * // ftp.download p DECL_20210805055044.csv 80.44548164236697
508
+ * // ftp.download p DECL_20210805055044.csv 85.17756879780032
509
+ * // ftp.download p DECL_20210805055044.csv 89.90965595323367
510
+ * // ftp.download p DECL_20210805055044.csv 94.64174310866701
511
+ * // ftp.download p DECL_20210805055044.csv 99.37383026410038
512
+ * // ftp.download p DECL_20210805055044.csv 100
513
+ * // ftp.download ok
514
+ * // ftp.syncToLocal { num: 0, files: [] }
515
+ * // ftp.quit { code: 221, text: '221 Goodbye.', isMark: false, isError: false }
516
+ *
70
517
  */
71
518
  function WFtp() {
519
+ let doc = {
520
+ doc_ftpConn: ftpConn,
521
+ doc_ftpLs: ftpLs,
522
+ doc_ftpQuit: ftpQuit,
523
+ doc_ftpStateFile: ftpStateFile,
524
+ doc_ftpCheckFile: ftpCheckFile,
525
+ doc_ftpDownload: ftpDownload,
526
+ doc_ftpUpload: ftpUpload,
527
+ doc_ftpSyncToLocal: ftpSyncToLocal,
528
+ doc_ftpSyncToRemote: ftpSyncToRemote,
529
+ }
72
530
 
73
531
  function WFtpCore() {
74
532
  let Ftp = null
@@ -110,11 +568,12 @@ function WFtp() {
110
568
 
111
569
  try {
112
570
  Ftp = new Jsftp({
113
- host: hostname,
571
+ host: hostname, //hostname or ip
114
572
  port, // defaults to 21
115
573
  user: username, // defaults to "anonymous"
116
574
  pass: password, // defaults to "@anonymous"
117
575
  })
576
+ Ftp.__doc__ = doc
118
577
  pm.resolve('ok')
119
578
  }
120
579
  catch (err) {
@@ -125,7 +584,7 @@ function WFtp() {
125
584
  }
126
585
 
127
586
 
128
- async function ftpLs(remoteFd = '.') {
587
+ async function ftpLs(fdRemote = '.') {
129
588
 
130
589
  //pm
131
590
  let pm = genPm()
@@ -136,7 +595,7 @@ function WFtp() {
136
595
  return pm
137
596
  }
138
597
 
139
- Ftp.ls(remoteFd, (err, res) => {
598
+ Ftp.ls(fdRemote, (err, res) => {
140
599
  if (err) {
141
600
  pm.reject(err)
142
601
  }
@@ -205,7 +664,7 @@ function WFtp() {
205
664
  }
206
665
 
207
666
 
208
- async function ftpDownload(fpRemote, fpLocal, cbProcess) {
667
+ async function ftpDownload(fpRemote, fpLocal, cbProcess = null) {
209
668
 
210
669
  //pm
211
670
  let pm = genPm()