跳至主要內容
Adaptive Planning
上次更新時間 :2023-06-23
設定和配置 SFTP

設定和配置 SFTP

您可以建立用戶端以連至 Secure File Transfer Protocol (SFTP) 伺服器,並對檔案執行各種作業。本文說明如何將 SFTP 連線新增至自訂雲端資料來源 (CCDS),以及如何在您的指令碼中包含 SFTP 連線。請參閱「設定 PGP 加密」以取得有關加密和解密檔案的資訊。

開始之前

導覽

Compass.png From the nav menu, go to
Integration
Design Integrations

設定和配置 SFTP

新建 SFTP 連線

  1. 從設計整合的
    憑證
    窗格建立
    SFTP 連線
  2. 輸入連線的名稱,然後按一下
    建立
  3. 在連線表單中輸入主機運算式。如果未指定,則連線會使用連接埠 22。系統可支援下列連接埠︰
    • 22
    • 1224
    • 2222
    • 5022
    • 5031
    • 5122
    • 10022
    • 20022
  4. 選擇您的驗證方式。
    • 對於私人金鑰驗證,不需要密碼。
    • 對於基本驗證,請輸入密碼。
  5. 對於私人金鑰驗證,請將公開金鑰傳送給用戶端伺服器管理者進行安裝。
  6. 第一次選取
    測試連線
對於私人金鑰或基本驗證︰
  • 當您首次選取
    測試連線
    時,系統會填入
    指紋
    欄位。這會為未來的連線啟用伺服器驗證。用戶端伺服器管理者可驗證
    指紋
    ,確認您已連線至正確的伺服器。
  • 首次執行
    測試連線
    後,請在
    憑證
    窗格中按一下您的 SFTP 連線,以重新載入連線並檢視指紋欄位。
  • 當您選取
    測試連線
    或在指令碼中使用 SFTP 連線時,來自伺服器的指紋必須相符,否則連線會失敗。
選取您的自訂雲端資料來源
從設計整合中的
資料來源
選取 CCDS 或建立 CCDS
新增對自訂雲端資料來源的 SFTP 連線
  1. 針對您的 CCDS 選取「設計工具設定」分頁。
  2. 設定元件
    窗格的
    其他設定
    中拖放
    SFTP 連線
    參數。
  3. 在「設計工具設定」分頁中配置 SFTP 連線。設定名稱是您將在指令碼中使用的控制代碼。例如 'sftpserver'。
在您的指令碼中新增 SFTP 連線
  1. 使用 ai.sftp.createClient() 建立用戶端,並提供您的 SFTP 設定名稱。例如︰
    const client = ai.sftp.createClient('mysftp').
    連線成功後,就會建立用戶端物件。
  2. 動作
    窗格測試您的連線,以執行您的指令碼。您可以在
    動作
    窗格的
    記錄
    中尋找指令碼的測試結果。

檔案上傳和下載的 SFTP 方法

使用下列方法 建立用戶端上傳下載 加密檔案至 SFTP 伺服器,並使用 PGP 將檔案加密或解密。請參閱 ai.sftp
  • createClient(sftpConnection)
    client = ai.sftp.createClient('mysftp');
  • uploadFile(Writer, uploadedFileName)
    client.uploadFile(writer,'./archive/datasample.csv.asc'
    );
  • downloadFile(filename)
    client.downloadFile('./archive/datasample.csv.asc'
    );
  • 中斷用戶端連線
    client.disconnect();
  • 釋出檔案 Reader 物件所取用的系統資源。
    reader.cleanUp();

從 SFTP 伺服器連線和下載檔案的範例

function testConnection(context) { let client; try { client = ai.sftp.createClient('mysftp'); } catch(e) { ai.log.logError('An error occurred connecting to the server: ' + e); return false; } finally { if (client) client.disconnect(); } return true; } function importData(context) { const rowset = context.getRowset(); const client = ai.sftp.createClient('mysftp'); const reader = client.downloadFile('./someData.csv'); try { reader.readLine(); let line = reader.readLine(); while (line) { let cells = line.split(','); rowset.addRow(cells); line = reader.readLine(); } } catch(e) { ai.log.logError('An error occurred downloading the file: ' + e); } finally { client.disconnect(); reader.cleanUp(); } }