跳至主要內容
Adaptive Planning
上次更新時間 :2023-06-23
ai.sftp

ai.sftp

本文說明 ai.sftp 名稱空間和相關聯的方法,以使用檔案讀取器和寫入器物件來建立用戶端、執行基本用戶端作業、上傳和下載檔案。
ai.sftp 名稱空間可讓使用者將檔案上傳及下載至 SFTP 伺服器。它還允許上傳和下載加密的檔案,讓您使用 PGP 加密和解密這些檔案。

建立用戶端

ai.sftp.createClient
您可以使用 createClient() 方法建立 SFTP 實例,並起始與 SFTP 伺服器的所有作業。此函數會將針對指令碼配置的 SFTP 連線字串名稱做為參數,並傳回用戶端實例物件。
方法
參數
傳回類型
說明
createClient(sftpConnection)
sftpConnection : 字串
您的 SFTP 連線名稱
物件
建立 SFTP 用戶端
用途
const client = ai.sftp.createClient('mySftpConnectionSetting');

用戶端基本作業

您可以對 ai.createClient 方法傳回的用戶端實例物件執行下列操作。
方法
參數
傳回類型
說明
isConnected()
Boolean
如果 SFTP 用戶端已連線,則傳回 True;否則為 False。
disconnect()
登出並關閉與伺服器的用戶端階段作業。在用戶端上呼叫的任何進一步作業都會導致拋出例外。
delete(fileName)
fileName : String 要刪除的檔案名稱
刪除指定的檔案
rename (renameFrom, renameTo)
renameFrom ︰字串
檔案的原始名稱
renameTo ︰字串
檔案的新名稱
重新命名指定的檔案
createDirectory(directoryName)
名稱︰字串
新目錄的相對路徑
在伺服器上建立目錄。
ChangeDirectory(newLocation)
newLocation : 字串
伺服器上新位置的相對路徑
String
變更伺服器上目前的工作目錄。此作業會傳回目前的工作目錄
getCurrentDirectory()
String
取得目前的工作目錄
getFileSizeBytes(fileName)
fileName : String 檔案名稱,對應擷取的檔案大小
數字
傳回指定檔案的大小 (以字節為單位)
listCurrentDirectory()
收藏
傳回目前工作目錄中所有檔案和目錄的清單。

下載檔案

使用下列用戶端方法從伺服器下載檔案。
downloadFile(fileName)
檔案名稱︰字串
要下載的檔案名稱
物件
下載檔案並傳回讀取器,以逐行通讀檔案。
downloadEncryptedFile(fileName, encryptionSettingName)
fileName : 字串
要下載的檔案的相對路徑
加密設定名稱 : 字串
在「設計整合」的
「憑證」
區域中,您的加密設定名稱
物件
下載檔案,使用指定的加密設定將其解密,並傳回讀取器以逐行通讀檔案。
downloadAndVerifyEncryptedFile(fileName, encryptionSettingName)
fileName : 字串
要下載的檔案的相對路徑
加密設定名稱 : 字串
在「設計整合」的
「憑證」
區域中,您的加密設定名稱
物件
下載檔案,使用指定的加密設定進行驗證和解密,並傳回逐行通讀檔案的讀取器
檔案讀取器方法
您可以在downloadFiles() 方法傳回的讀取器物件上調用這些方法。
readLine()
String
逐行讀取檔案
cleanUp()
釋出檔案 Reader 物件所取用的系統資源。
執行 cleanup() 方法後無法使用 FileReader。
資源會在指令碼結束時自動清除。
範例
//Pass the relative filepath and the name of your encryption setting const reader = client.downloadEncryptedFile('./archive/datasample.csv.asc', 'mypgp'); let line = reader.readLine() while(line !== null){ //Process the line line = reader.readLine() }

上傳檔案

若要上傳檔案,必須建立可寫入行的寫入器。編寫器物件是從 ai.sftp 名稱空間取得。檔案建立後,即可使用下列其中一種方法上傳至用戶端。
uploadFile(writer, uploadedFileName)
編寫器 : 編寫器
從 ai.sftp.createFileWriter() 方法取得
上傳的檔案名稱︰字串
您要上傳的檔案名稱
將指定的檔案上傳至伺服器。
uploadEncryptedFile (writer,uploadedFileName,encryptionSettingName)
編寫器 : 編寫器
從 ai.sftp.createFileWriter() 方法取得
上傳的檔案名稱︰字串
您要上傳的檔案名稱
加密設定名稱 : 字串
加密設定的名稱
使用指定的加密設定 (位於設計整合的
「憑證」
區域中) 加密檔案,並將檔案上傳至伺服器。檔案名稱和位置由上傳的檔案名稱引數指定。
uploadEncryptedAndSignedFile(writer, uploadedFileName, encryptionSettingName)
編寫器 : 編寫器
從 ai.sftp.createFileWriter() 方法取得
上傳的檔案名稱︰字串
您要上傳的檔案名稱
加密設定名稱 : 字串
加密設定的名稱
使用指定的加密設定 (位於設計整合的
「憑證」
區域中) 加密檔案並簽署檔案,並將其上傳至伺服器。檔案名稱和位置由上傳的檔案名稱引數指定。
檔案編寫器方法
您可以對下載檔案傳回的讀取器物件調用下列方法。
writeLine(val)
val : 字串
要寫入檔案的內容
將內容逐行寫入檔案。
cleanUp()
釋放檔案編寫器物件所使用的系統資源。
執行 cleanup() 方法後無法使用 Writer。
資源會在指令碼結束時自動清除。
範例
const client = ai.sftp.createClient('mySftpConnectionSetting'); ​ //Invoke the File Writer method const writer = ai.sftp.createFileWriter(); ​ //Write content to the writer variable writer.writeLine('Here is a line to upload'); client.uploadFile(writer, 'myFileToShare.txt'); writer.cleanUp();

AWS Transfer for SFTP 的注意事項

透過 SFTP 連線至 AWS S3 伺服器時,與 Open SSH 伺服器相比,使用 AWS S3 檔案組織的行為會有所不同。
  • 建立目錄
    • AWS S3 可讓您指定新目錄的路徑。例如, client.createDirectory('./parent/child');將建立父系目錄。但是,如果父系目錄已經存在,而您嘗試建立子系目錄,則會引發例外。