주 컨텐츠로 이동
Adaptive Planning
최종 업데이트: 2023-06-23
ai.sftp

ai.sftp

이 문서에서는 클라이언트를 생성하고, 기본 클라이언트 작업을 수행하고, 파일 Reader 및 Writer 오브젝트를 사용하여 파일을 업로드 및 다운로드하는 ai.sftp 네임스페이스 및 관련 메서드를 설명합니다.
ai.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()
부울
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 디렉토리를 생성하려고 하면 예외가 발생합니다.