設定和配置 SFTP
您可以建立用戶端以連至 Secure File Transfer Protocol (SFTP) 伺服器,並對檔案執行各種作業。本文說明如何將 SFTP 連線新增至自訂雲端資料來源 (CCDS),以及如何在您的指令碼中包含 SFTP 連線。請參閱「設定 PGP 加密」以取得有關加密和解密檔案的資訊。
開始之前
- 第一次使用 CCDS?請參閱 「概念︰CCDS 總覽」 和 「設定自訂雲端資料來源 (CCDS)」。
- 必要權限︰管理 > 權限集內的整合開發人員。
導覽
From the nav menu, go to 設定和配置 SFTP
新建 SFTP 連線
- 從設計整合的窗格建立憑證SFTP 連線。
- 輸入連線的名稱,然後按一下建立。
- 在連線表單中輸入主機運算式。如果未指定,則連線會使用連接埠 22。系統可支援下列連接埠︰
- 22
- 1224
- 2222
- 5022
- 5031
- 5122
- 10022
- 20022
- 選擇您的驗證方式。
- 對於私人金鑰驗證,不需要密碼。
- 對於基本驗證,請輸入密碼。
- 對於私人金鑰驗證,請將公開金鑰傳送給用戶端伺服器管理者進行安裝。
- 第一次選取測試連線。
對於私人金鑰或基本驗證︰
- 當您首次選取測試連線時,系統會填入指紋欄位。這會為未來的連線啟用伺服器驗證。用戶端伺服器管理者可驗證指紋,確認您已連線至正確的伺服器。
- 首次執行測試連線後,請在憑證窗格中按一下您的 SFTP 連線,以重新載入連線並檢視指紋欄位。
- 當您選取測試連線或在指令碼中使用 SFTP 連線時,來自伺服器的指紋必須相符,否則連線會失敗。
- 選取您的自訂雲端資料來源
- 從設計整合中的資料來源選取 CCDS 或建立 CCDS。
- 新增對自訂雲端資料來源的 SFTP 連線
- 針對您的 CCDS 選取「設計工具設定」分頁。
- 從設定元件窗格的其他設定中拖放SFTP 連線參數。
- 在「設計工具設定」分頁中配置 SFTP 連線。設定名稱是您將在指令碼中使用的控制代碼。例如 'sftpserver'。
- 在您的指令碼中新增 SFTP 連線
- 使用 ai.sftp.createClient() 建立用戶端,並提供您的 SFTP 設定名稱。例如︰const client = ai.sftp.createClient('mysftp').連線成功後,就會建立用戶端物件。
- 從動作窗格測試您的連線,以執行您的指令碼。您可以在動作窗格的記錄中尋找指令碼的測試結果。
檔案上傳和下載的 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(); } }