跳至主要内容
Adaptive Planning
上次更新时间 :2023-06-23
ai.sftp

ai.sftp

本文介绍了 ai.sftp 命名空间以及相关的方法,用于创建客户端、执行基本客户端操作,以及使用文件 Reader 和 Writer 对象上传和下载文件。
通过 ai.sftp 命名空间,用户可以将文件上传到 SFTP 服务器,或将文件下载到 SFTP 服务器。它还允许上传和下载加密文件,以便您使用 PGP 对其进行加密和解密。

创建客户端

ai.sftp.createClient
您可以使用 createClient() 方法创建 SFTP 实例,并通过 SFTP 服务器发起所有操作。此函数采用为脚本配置的 SFTP 连接字符串的名称作为参数,并返回客户端实例对象。
方法
参数
返回类型
描述
createClient(sftpConnection)
sftpConnection:String
您的 SFTP 连接名称
对象
创建 SFTP 客户端
使用情况
const client = ai.sftp.createClient('mySftpConnectionSetting');

客户端基本操作

您可以对从 ai.createClient 方法返回的客户端实例对象执行以下操作。
方法
参数
返回类型
描述
isConnected()
Boolean
如果已连接 SFTP 客户端,则返回 True;反之,则返回 True。否则为“假”。
disconnect()
注销并关闭客户端与服务器的会话。在客户端上调用的任何其他操作都将导致引发异常。
delete(fileName)
fileName : 要删除的文件的 String 名称
删除指定的文件
rename (renameFrom, renameTo)
renameFrom:String
文件的原始名称
renameTo :String
文件的新名称
重命名指定的文件
createDirectory(directoryName)
名称:字符串
新目录的相对路径
在服务器上创建目录。
changeDirectory(newLocation)
newLocation : String
新位置在服务器上的相对路径
String
更改服务器上的当前工作目录。此操作将返回当前工作目录
getCurrentDirectory()
String
获取当前工作目录
getFileSizeBytes(fileName)
fileName : String 所提取文件大小的文件名
数字
返回指定文件的大小(以字节为单位)。
listCurrentDirectory()
收款
返回当前工作目录中所有文件和目录的列表。

下载文件

使用以下客户端方法从服务器下载文件。
downloadFile(fileName)
fileName:字符串
要下载的文件的名称
对象
下载文件并返回读取器以逐行通读文件。
downloadEncryptedFile(fileName, encryptionSettingName)
fileName : String
要下载的文件的相对路径
EncryptionSettingName:String
“设计集成”中
“凭据”
区域中的加密设置的名称。
对象
下载文件,使用指定的加密设置对其进行解密,然后返回一个读取器以逐行通读该文件。
downloadAndVerifyEncryptedFile(fileName, encryptionSettingName)
fileName : String
要下载的文件的相对路径
EncryptionSettingName:String
“设计集成”中
“凭据”
区域中的加密设置的名称。
对象
下载文件,使用指定的加密设置验证文件和解密文件,然后返回一个读取器,以便逐行通读文件。
文件读取器方法
您可以对从 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() 方法获取
UploadedFileName:String
正在上传的文件的名称
将指定的文件上传到服务器。
UploadEncryptedFile (Writer, UploadedFileName, EncryptionSettingName)
编写器:编写器
从 ai.sftp.createFileWriter() 方法获取
UploadedFileName:String
正在上传的文件的名称
EncryptionSettingName:String
加密设置的名称
使用指定的加密设置(可在“设计集成”的
“凭据”
区域中找到)对文件进行加密,并将其上传到服务器。文件名和位置由 UploadedFileName 参数指定。
uploadEncryptedAndSignedFile(writer, uploadedFileName, encryptionSettingName)
编写器:编写器
从 ai.sftp.createFileWriter() 方法获取
UploadedFileName:String
正在上传的文件的名称
EncryptionSettingName:String
加密设置的名称
使用指定的加密设置(可在“设计集成”的
“凭据”
区域中找到)对文件进行加密和签名,然后将其上传到服务器。文件名和位置由 UploadedFileName 参数指定。
文件编写器方法
您可以对下载文件后返回的 Reader 对象调用以下方法。
WriteLine(val)
val:String
要写入文件的内容
将内容逐行写入文件。
cleanUp()
释放“文件编写器”对象消耗的系统资源。
运行 Cleanup() 方法后无法使用编写器。
系统会在脚本结束时自动清除资源。
示例
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 文件组织在行为上存在一些差异。
  • CreateDirectory
    • AWS S3 允许您指定新目录的路径。例如,client.createDirectory('./parent/sub');将创建父级目录。但是,如果父目录已存在,而您尝试创建子目录,则会引发异常。