ai.sftp
이 문서에서는 클라이언트를 생성하고, 기본 클라이언트 작업을 수행하고, 파일 Reader 및 Writer 오브젝트를 사용하여 파일을 업로드 및 다운로드하는 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를 반환하고, 그렇지 않으면 True를 반환합니다. 그렇지 않으면 False입니다. | |
disconnect() | 로그아웃하고 서버와의 클라이언트 세션을 닫습니다. 클라이언트에서 추가 작업이 호출되면 예외가 발생합니다. | ||
delete(fileName) | fileName: 문자열 삭제할 파일의 이름입니다. | 지정된 파일을 삭제합니다. | |
이름 바꾸기(이름 바꾸기 시작, 이름 바꾸기 종료) | RenameFrom: 문자열 파일의 원래 이름 renameTo : String 파일의 새 이름 | 지정된 파일의 이름을 바꿉니다. | |
createDirectory(directoryName) | 이름: 문자열 새 디렉토리의 상대 경로입니다. | 서버에 디렉토리를 생성합니다. | |
changeDirectory(newLocation) | newLocation: 문자열 서버에서 신규 위치의 상대 경로입니다. | String | 서버의 현재 작업 디렉토리를 변경합니다. 이 작업은 현재 작업 디렉토리를 반환합니다. |
getCurrentDirectory() | String | 현재 작업 디렉토리 가져오기 | |
getFileSizeBytes(fileName) | fileName: 문자열 가져온 파일 크기의 파일명입니다. | 숫자 | 지정된 파일의 크기를 바이트 단위로 반환합니다. |
listCurrentDirectory() | 모음 | 현재 작업 디렉토리의 모든 파일 및 디렉토리 목록을 반환합니다. |
파일 다운로드
다음 클라이언트 방법을 사용하여 서버에서 파일을 다운로드합니다.
downloadFile(fileName) | 파일명: 문자열 다운로드할 파일의 이름입니다. | 오브젝트 | 파일을 다운로드하고 파일을 한 줄씩 읽을 수 있는 리더를 반환합니다. |
downloadEncryptedFile(fileName, encryptionSettingName) | 파일명: 문자열 다운로드할 파일의 상대 경로입니다. encryptionSettingName : String 통합 디자인의 자격증명 영역에 있는 암호화 설정의 이름입니다. | 오브젝트 | 파일을 다운로드하고 지정된 암호화 설정을 사용하여 해독한 다음, 파일을 한 줄씩 읽을 수 있는 리더를 반환합니다. |
downloadAndVerifyEncryptedFile(fileName, encryptionSettingName) | 파일명: 문자열 다운로드할 파일의 상대 경로입니다. encryptionSettingName : String 통합 디자인의 자격증명 영역에 있는 암호화 설정의 이름입니다. | 오브젝트 | 파일을 다운로드하고, 지정된 암호화 설정을 사용하여 파일을 확인 및 해독한 다음, 파일을 한 줄씩 읽을 수 있는 판독기를 반환합니다. |
- 파일 리더 방법
- DownloadFiles() 메서드에서 반환된 리더 오브젝트에서 이러한 메서드를 호출할 수 있습니다.readLine()String파일을 한 줄씩 읽습니다.cleanUp()파일 Reader 오브젝트가 사용하는 시스템 리소스 해제정리() 메서드를 실행한 후에는 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) | 작성기: 작성기 Obtained from ai.sftp.createFileWriter() method UploadFileName: 문자열 업로드할 파일의 이름 | 지정된 파일을 서버에 업로드합니다. | |
UploadEncryptedFile(기록기, 업로드된파일명, 암호화 설정명) | 작성기: 작성기 Obtained from ai.sftp.createFileWriter() method UploadFileName: 문자열 업로드할 파일의 이름 encryptionSettingName : String 암호화 설정의 이름입니다. | 지정된 암호화 설정(통합 디자인의 자격증명 영역에 있음)을 사용하여 파일을 암호화하고 서버에 업로드합니다. 파일명과 위치는 UploadFileName 인수로 지정됩니다. | |
uploadEncryptedAndSignedFile(writer, uploadedFileName, encryptionSettingName) | 작성기: 작성기 Obtained from ai.sftp.createFileWriter() method UploadFileName: 문자열 업로드할 파일의 이름 encryptionSettingName : String 암호화 설정의 이름입니다. | 지정된 암호화 설정(통합 디자인의 자격증명 영역에 있음)을 사용하여 파일을 암호화하고 서명한 후 서버에 업로드합니다. 파일명과 위치는 UploadFileName 인수로 지정됩니다. |
- 파일 작성기 메서드
- 파일 다운로드에서 반환된 Reader 오브젝트에서 다음 메서드를 호출할 수 있습니다.writeLine(val)val: 문자열파일에 쓸 콘텐츠파일에 내용을 한 줄씩 씁니다.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();
SFTP용 AWS 전송에 대한 참고사항
SFTP를 통해 AWS S3 서버에 연결하는 경우 Open SSH 서버와 비교할 때 AWS S3 파일 구성에서 몇 가지 동작 차이가 있습니다.
- CreateDirectory
- AWS S3에서는 신규 디렉토리의 경로를 지정할 수 있습니다. 예를 들어, client.createDirectory('./parent/child'); 은 parent 디렉토리를 생성합니다. 그러나 parent 디렉토리가 이미 있는 상태에서 child 디렉토리를 생성하려고 하면 예외가 발생합니다.