Global

Methods

(async) WDwdataFtp(st, optopt) → {Object}

Description:
  • 基於檔案之下載FTP數據與任務建構器

    執行階段最新hash數據放置於fdDwAttime,前次hash數據會於結束前自動備份至fdDwCurrent

    執行階段最新數據放置於fdDwStorageTemp,前次數據放置於fdDwStorage,於結束前會將fdDwStorage清空,將fdDwStorageTemp複製至fdDwStorage

Source:
Example
import w from 'wsemi'
import WDwdataFtp from './src/WDwdataFtp.mjs'

let st = {
    'hostname': '{hostname}',
    'port': 21,
    'username': '{username}',
    'password': '{password}',
    'fdIni': './'
}
// console.log('st', st)

//fdTagRemove
let fdTagRemove = `./_tagRemove`
w.fsCleanFolder(fdTagRemove)

//fdDwStorageTemp
let fdDwStorageTemp = `./_dwStorageTemp`
w.fsCleanFolder(fdDwStorageTemp)

//fdDwStorage
let fdDwStorage = `./_dwStorage`
w.fsCleanFolder(fdDwStorage)

//fdDwAttime
let fdDwAttime = `./_dwAttime`
w.fsCleanFolder(fdDwAttime)

//fdDwCurrent
let fdDwCurrent = `./_dwCurrent`
w.fsCleanFolder(fdDwCurrent)

//fdResult
let fdResult = `./_result`
w.fsCleanFolder(fdResult)

//fdTaskCpActualSrc
let fdTaskCpActualSrc = `./_taskCpActualSrc`
w.fsCleanFolder(fdTaskCpActualSrc)

//fdTaskCpSrc
let fdTaskCpSrc = `./_taskCpSrc`
w.fsCleanFolder(fdTaskCpSrc)

let opt = {
    useExpandOnOldFiles: false, //true, false
    fdTagRemove,
    fdDwStorageTemp,
    fdDwStorage,
    fdDwAttime,
    fdDwCurrent,
    fdResult,
    fdTaskCpActualSrc,
    fdTaskCpSrc,
    // fdLog,
    // funDownload,
    // funGetCurrent,
    // funRemove,
    // funAdd,
    // funModify,
}
let ev = await WDwdataFtp(st, opt)
    .catch((err) => {
        console.log(err)
    })
ev.on('change', (msg) => {
    delete msg.type
    console.log('change', msg)
})
// change { event: 'start', msg: 'running...' }
// change { event: 'proc-callfun-afterStart', msg: 'start...' }
// change { event: 'proc-callfun-afterStart', msg: 'done' }
// change { event: 'proc-callfun-download', msg: 'start...' }
// change { event: 'proc-callfun-download', num: 2, msg: 'done' }
// change { event: 'proc-callfun-getCurrent', msg: 'start...' }
// change { event: 'proc-callfun-getCurrent', num: 0, msg: 'done' }
// change { event: 'proc-compare', msg: 'start...' }
// change { event: 'proc-compare', numRemove: 0, numAdd: 2, numModify: 0, numSame: 0, msg: 'done' }
// change { event: 'proc-add-callfun-add', id: 'test1.txt', msg: 'start...' }
// change { event: 'proc-add-callfun-add', id: 'test1.txt', msg: 'done' }
// change { event: 'proc-add-callfun-add', id: 'test2.txt', msg: 'start...' }
// change { event: 'proc-add-callfun-add', id: 'test2.txt', msg: 'done' }
// ...
Parameters:
Name Type Attributes Default Description
st String

輸入設定FTP連線資訊物件

Properties
Name Type Attributes Default Description
transportation String <optional>
'FTP'

輸入傳輸協定字串,可選'FTP'、'SFTP',預設'FTP'

hostname String <optional>
''

輸入hostname字串,預設''

port Integer <optional>
21|22

輸入port正整數,當transportation='FTP'預設21,當transportation='SFTP'預設22

username String <optional>
''

輸入帳號字串,預設''

password String <optional>
''

輸入密碼字串,預設''

fdIni String <optional>
'./'

輸入同步資料夾字串,預設'./'

opt Object <optional>
{}

輸入設定物件,預設{}

Properties
Name Type Attributes Default Description
useExpandOnOldFiles Boolean <optional>
false

輸入來源檔案是否僅為增量檔案布林值,預設false

useSimulateFiles Boolean <optional>
false

輸入是否使用模擬取得FTP數據布林值,預設false

fdTagRemove String <optional>
'./_tagRemove'

輸入暫存標記為刪除數據資料夾字串,預設'./_tagRemove'

fdDwStorageTemp String <optional>
'./_dwStorageTemp'

輸入最新下載檔案存放資料夾字串,預設'./_dwStorageTemp'

fdDwStorage String <optional>
'./_dwStorage'

輸入合併儲存檔案資料夾字串,預設'./_dwStorage'

fdDwAttime String <optional>
'./_dwAttime'

輸入當前下載供比對hash用之數據資料夾字串,預設'./_dwAttime'

fdDwCurrent String <optional>
'./_dwCurrent'

輸入已下載供比對hash用之數據資料夾字串,預設'./_dwCurrent'

fdResult String <optional>
`./_result`

輸入已下載數據所連動生成數據資料夾字串,預設./_result

fdTaskCpActualSrc String <optional>
'./_taskCpActualSrc'

輸入任務狀態之來源端完整資料夾字串,預設'./_taskCpActualSrc'

fdTaskCpSrc String <optional>
'./_taskCpSrc'

輸入任務狀態之來源端資料夾字串,預設'./_taskCpSrc'

fdLog String <optional>
'./_logs'

輸入儲存log資料夾字串,預設'./_logs'

funDownload function <optional>
null

輸入取得最新下載檔案hash之函數,回傳資料陣列,預設null

funGetCurrent function <optional>
null

輸入取得已下載檔案hash之函數,回傳資料陣列,預設null

funAdd function <optional>
null

輸入當有新資料時,需要連動處理之函數,預設null

funModify function <optional>
null

輸入當有資料需更新時,需要連動處理之函數,預設null

funRemove function <optional>
null

輸入當有資料需刪除時,需要連動處理之函數,預設null

funAfterStart function <optional>
null

輸入偵測程序剛開始啟動時,需要處理之函數,預設null

funBeforeEnd function <optional>
null

輸入偵測程序要結束前,需要處理之函數,預設null

timeToleranceRemove Number <optional>
0

輸入刪除任務之防抖時長,單位ms,預設0,代表不使用

Returns:

回傳事件物件,可呼叫函數on監聽change事件

Type
Object