ai.sftp
この記事では、ai.sftp 名前空間と、クライアントの作成、基本的なクライアント操作の実行、ファイルのリーダーおよびライター オブジェクトによるファイルのアップロードとダウンロードに関連するメソッドについて説明します。
ai.sftp 名前空間により、ユーザーは SFTP サーバーにファイルをアップロードおよびダウンロードすることができます。また、暗号化されたファイルのアップロードとダウンロードにより、PGP で暗号化と復号化を行うこともできます。
クライアントの作成
- ai.sftp.createClient
- createClient() メソッドで SFTP インスタンスを作成し、SFTP サーバーですべての操作を開始できます。この関数は、スクリプトに設定された SFTP 接続文字列の名前をパラメータとして取り、クライアント インスタンス オブジェクトを返します。方法パラメータ戻り値の型説明createClient(sftpConnection)sftpConnection : StringSFTP 接続の名称オブジェクトSFTP クライアントの作成
- 使用方法
- const client = ai.sftp.createClient('mySftpConnectionSetting');
基本的なクライアント操作
ai.createClient メソッドから返されたクライアント インスタンス オブジェクトに対して、次の操作を実行できます。
方法 | パラメータ | 戻り値の型 | 説明 |
|---|---|---|---|
isConnected() | ブール値 | SFTP クライアントが接続されている場合は True を返します。それ以外の場合は False。 | |
disconnect() | ログアウトして、サーバーとのクライアント セッションを閉じます。クライアントでそれ以上呼び出された操作はすべて、例外が送出されます。 | ||
delete(fileName) | ファイル名: 削除するファイルの文字列名 | 指定したファイルを削除 | |
rename (renameFrom, renameTo) | renameFrom : String ファイルの元の名前 renameTo : String 新しいファイル名 | 指定されたファイルの名前を変更します | |
createDirectory(directoryName) | 名前: 文字列 新しいディレクトリの相対パス | サーバーにディレクトリを作成します。 | |
changeDirectory(newLocation) | newLocation: 文字列 サーバー上の新しい場所の相対パス | String | サーバーの現在の作業ディレクトリを変更します。この操作により、現在の作業ディレクトリが返されます |
getCurrentDirectory() | String | 現在の作業ディレクトリを取得します。 | |
getFileSizeBytes(fileName) | ファイル名: 取得したファイル サイズの文字列 | 数値 | 指定したファイルのサイズをバイトで返します |
listCurrentDirectory() | コレクション | 現在の作業ディレクトリにあるすべてのファイルとディレクトリのリストを返します。 |
ファイルのダウンロード
サーバーからファイルをダウンロードするには、次のクライアントの方法を使用します。
downloadFile(fileName) | fileName: String ダウンロードするファイルの名前 | オブジェクト | ファイルをダウンロードし、ファイルを 1 行ごとに読み取るリーダーを返します。 |
downloadEncryptedFile(fileName, encryptionSettingName) | ファイル名: 文字列 ダウンロードするファイルの相対パス encryptionSettingName : String "インテグレーション設定" の "認証情報" 領域にある暗号化設定の名前。 | オブジェクト | ファイルをダウンロードし、指定された暗号化設定を使用してファイルを復号化し、ファイルを 1 行ずつ読み取るリーダーを返します。 |
downloadAndVerifyEncryptedFile(fileName, encryptionSettingName) | ファイル名: 文字列 ダウンロードするファイルの相対パス encryptionSettingName : String "インテグレーション設定" の "認証情報" 領域にある暗号化設定の名前。 | オブジェクト | ファイルをダウンロードし、指定された暗号化設定を使用してファイルの検証と復号化し、ファイルを 1 行ずつ読み取るリーダーを返します |
- ファイル リーダー方法
- これらのメソッドは、DownloadFiles() メソッドから返されたリーダー オブジェクトで呼び出すことができます。readLine()Stringファイルを 1 行ごとに読み取りますクリーンアップ()ファイル リーダー オブジェクトが消費するシステム リソースを解放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 暗号化設定の名前 | 指定された暗号化設定 ("インテグレーション設定" の "認証情報" 領域にあります) を使ってファイルを暗号化し、サーバーにアップロードします。ファイル名と場所は、updateFileName 引数で指定されます。 | |
uploadEncryptedAndSignedFile(writer, uploadedFileName, encryptionSettingName) | ライター: ライター ai.sftp.createFileWriter() メソッドから取得 uploadedFileName: String アップロードするファイルの名前 encryptionSettingName : String 暗号化設定の名前 | 指定された暗号化設定 ("インテグレーション設定" の "認証情報" 領域にあります) を使ってファイルを暗号化および署名し、サーバーにアップロードします。ファイル名と場所は、updateFileName 引数で指定されます。 |
- ファイル ライターの方法
- ファイルのダウンロードから返されたリーダー オブジェクトに対して次のメソッドを呼び出すことができます。writeLine(val)val: 文字列ファイルに書き込む内容ファイルに 1 行ごとに内容を書き込みます。クリーンアップ()ファイル ライター オブジェクトが消費するシステム リソースを解放クリーンアップ() メソッドの実行後にライターを使用することはできません。リソースはスクリプトの最後で自動的にクリーンアップされます。
- 例
- 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();
SFTP に対応した AWS Transfer に関する注意事項
SFTP で AWS S3 サーバーに接続している間、オープンな SSH サーバーと比べて、AWS S3 のファイル構成の動作に若干の違いがあります。
- CreateDirectory
- AWS S3 では、新しいディレクトリのパスを指定できます。例: client.createDirectory('./parent/子');によって親ディレクトリが作成されます。ただし、親ディレクトリがすでに存在する場合に子ディレクトリを作成しようとすると、例外が送られます。