ListSFTP

ListSFTP

SFTP 서버에 있는 파일의 목록을 수행하는 프로세서예요. 원격 서버에서 파일을 찾을 때마다 filename 속성이 원격 서버에 있는 파일 이름으로 설정된 새 FlowFile이 생성돼요. 그런 다음 FetchSFTP와 함께 사용해 해당 파일을 가져올 수 있어요.

출처: Snowflake 문서

본문

기능 — 일반 제공(Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP Commercial 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS Commercial 리전의 모든 계정에서 사용할 수 있어요.

Bundle

org.apache.nifi | nifi-standard-nar

설명 (Description)

SFTP 서버에 있는 파일의 목록을 수행해요. 원격 서버에서 파일을 찾을 때마다 filename 속성이 원격 서버에 있는 파일 이름으로 설정된 새 FlowFile이 생성돼요. 그런 다음 FetchSFTP와 함께 사용해 해당 파일을 가져올 수 있어요.

태그 (Tags)

files, ingest, input, list, remote, sftp, source

입력 요구사항 (Input Requirement)

FORBIDDEN (금지)

민감한 동적 속성 지원 (Supports Sensitive Dynamic Properties)

false

속성 (Properties)

Property Description
Algorithm Negotiation SSH 알고리즘 협상을 위한 구성 전략이에요.
Ciphers Allowed SFTP 연결에 허용되는 Ciphers의 쉼표로 구분된 목록이에요. 모두 허용하려면 설정하지 않은 채 두세요. 사용 가능한 옵션: 3des-cbc, aes128-cbc, aes128-ctr, [email protected], aes192-cbc, aes192-ctr, aes256-cbc, aes256-ctr, [email protected], arcfour128, arcfour256, blowfish-cbc, [email protected], none
Connection Timeout 연결을 만드는 중 시간 초과가 되기 전에 기다리는 시간이에요.
Data Timeout 로컬과 원격 시스템 사이에서 파일을 전송할 때 두 시스템 사이에 데이터가 전송되지 않은 채 경과할 수 있는 시간을 지정해요.
Entity Tracking Initial Listing Target 초기 목록을 처리하는 방법을 지정해요. ‘Tracking Entities’ 전략에서 사용돼요.
Entity Tracking State Cache 나열된 엔티티를 지정된 캐시 저장소에 저장해서 이 프로세서가 NiFi 재시작 또는 primary node 변경 시에도 목록을 이어서 처리할 수 있게 해요. ‘Tracking Entities’ 전략은 최근 ‘Tracking Time Window’ 안에 나열된 모든 엔티티의 추적 정보를 요구해요. 많은 수의 엔티티를 지원하기 위해 이 전략은 managed state 대신 DistributedMapCache를 사용해요. Cache key 형식은 ‘ListedEntities::{processorId}(::{nodeId})’예요. 노드별로 나열된 엔티티를 추적한다면 상태를 별도로 관리하기 위해 선택적인 ‘::{nodeId}’ 부분이 추가돼요. 예: cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3'. 저장된 cache 내용은 Gzipped JSON string이에요. 대상 목록 구성이 변경되면 cache key가 삭제돼요. ‘Tracking Entities’ 전략에서 사용돼요.
Entity Tracking Time Window 이 프로세서가 이미 나열된 엔티티를 얼마나 오래 추적할지 지정해요. ‘Tracking Entities’ 전략은 지정된 시간 창 안에 있는 타임스탬프의 엔티티를 선택할 수 있어요. 예를 들어 ’30 minutes’로 설정하면 최근 30분 내 타임스탬프를 가진 엔티티가 이 프로세서 실행 시 목록 대상이 돼요. 다음 조건 중 하나가 충족되면 나열된 엔티티는 ‘new/updated’로 간주되고 FlowFile이 생성돼요. 1. 이미 나열된 엔티티에 존재하지 않음, 2. 캐시된 엔티티보다 새 타임스탬프를 가짐, 3. 캐시된 엔티티와 크기가 다름. 캐시된 엔티티의 타임스탬프가 지정된 시간 창보다 오래되면 해당 엔티티는 캐시된 이미 나열된 엔티티에서 제거돼요. ‘Tracking Entities’ 전략에서 사용돼요.
File Filter Regex 파일 이름을 필터링하기 위한 Java Regular Expression을 제공해요. 필터를 제공하면 이름이 해당 Regular Expression과 일치하는 파일만 가져와요.
Follow Symbolic Links true이면 symbolic file과 중첩된 symbolic 하위 디렉터리까지 가져오고, 그렇지 않으면 symbolic file을 읽지 않고 symbolic link 하위 디렉터리를 통과하지 않아요.
Host Key File 제공하면 주어진 파일이 Host Key로 사용돼요. 그렇지 않으면 ‘Strict Host Key Checking’ 속성이 적용되면(true로 설정) ~/.ssh 디렉터리의 ‘known_hosts’와 ‘known_hosts2’ 파일을 사용하고, 그렇지 않으면 host key 파일이 사용되지 않아요.
Hostname 원격 시스템의 정규화된 호스트 이름 또는 IP 주소예요.
Ignore Dotted Files true이면 이름이 점(“.”)으로 시작하는 파일은 무시돼요.
Key Algorithms Allowed SFTP 연결에 허용되는 Key Algorithms의 쉼표로 구분된 목록이에요. 모두 허용하려면 설정하지 않은 채 두세요. 사용 가능한 옵션: ecdsa-sha2-nistp256, [email protected], ecdsa-sha2-nistp384, [email protected], ecdsa-sha2-nistp521, [email protected], rsa-sha2-256, [email protected], rsa-sha2-512, [email protected], «redacted:sk-…»@openssh.com, «redacted:sk-…»@openssh.com, ssh-dss, [email protected], ssh-ed25519, [email protected], ssh-rsa, [email protected]
Key Exchange Algorithms Allowed SFTP 연결에 허용되는 Key Exchange Algorithms의 쉼표로 구분된 목록이에요. 모두 허용하려면 설정하지 않은 채 두세요. 사용 가능한 옵션: curve25519-sha256, [email protected], curve448-sha512, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group14-sha256, diffie-hellman-group15-sha512, diffie-hellman-group16-sha512, diffie-hellman-group17-sha512, diffie-hellman-group18-sha512, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, mlkem1024nistp384-sha384, mlkem768nistp256-sha256, mlkem768x25519-sha256, sntrup761x25519-sha512, [email protected]
Listing Strategy new/updated 엔티티를 결정하는 방법을 지정해요. 자세한 내용은 각 전략 설명을 참고하세요.
Maximum File Age 파일을 가져오기 위한 최대 수명이에요. 이 시간보다 오래된 파일(마지막 수정 날짜 기준)은 무시돼요.
Maximum File Size 파일을 가져오기 위한 최대 크기예요.
Message Authentication Codes Allowed SFTP 연결에 허용되는 Message Authentication Codes의 쉼표로 구분된 목록이에요. 모두 허용하려면 설정하지 않은 채 두세요. 사용 가능한 옵션: hmac-md5, hmac-md5-96, hmac-sha1, hmac-sha1-96, [email protected], hmac-sha2-256, [email protected], hmac-sha2-512, [email protected]
Minimum File Age 파일을 가져오기 위한 최소 수명이에요. 이 시간보다 최신 파일(마지막 수정 날짜 기준)은 무시돼요.
Minimum File Size 파일을 가져오기 위한 최소 크기예요.
Password 사용자 계정의 비밀번호예요.
Path Filter Regex Search Recursively가 true일 때 경로가 주어진 Regular Expression과 일치하는 하위 디렉터리만 스캔돼요.
Port 원격 시스템이 파일 전송을 위해 수신 대기하는 포트예요.
Private Key Passphrase 개인 키의 비밀번호예요.
Private Key Path Private Key 파일의 정규화된 경로예요.
Record Writer 목록을 만드는 데 사용할 Record Writer를 지정해요. 지정하지 않으면 나열된 각 엔티티마다 FlowFile 하나가 생성돼요. 지정하면 모든 엔티티가 개별 FlowFiles에 속성을 추가하는 대신 단일 FlowFile에 기록돼요.
Remote Path 원격 시스템에서 파일을 가져오거나 보낼 경로예요.
Search Recursively true이면 임의로 중첩된 하위 디렉터리에서 파일을 가져오고, 그렇지 않으면 하위 디렉터리를 통과하지 않아요.
Send Keep Alive On Timeout 5초마다 Keep Alive 메시지를 최대 5회 보내 전체 25초의 time out을 적용해요.
Strict Host Key Checking 호스트 키의 엄격한 적용 여부를 나타내요.
Target System Timestamp Precision 대상 시스템의 타임스탬프 정밀도를 지정해요. 이 프로세서는 어떤 것을 나열할지 결정하기 위해 엔티티의 타임스탬프를 사용하므로 올바른 타임스탬프 정밀도를 사용하는 것이 중요해요.
Use Compression 파일 전송 시 ZLIB 압축을 사용할지 여부를 나타내요.
Username 사용자 이름이에요.
proxy-configuration-service 네트워크 요청을 프록시할 Proxy Configuration Controller Service를 지정해요.

상태 관리 (State management)

Scopes Description
CLUSTER 파일 목록을 수행한 후 최신 파일의 타임스탬프가 저장돼요. 이렇게 하면 프로세서가 다음 실행 때 이 날짜 이후에 추가되거나 수정된 파일만 나열할 수 있어요. 상태는 클러스터 전체에 저장되므로 이 프로세서를 Primary Node에서만 실행할 수 있고, 새 Primary Node가 선택되면 새 노드가 이전 Primary Node가 나열한 데이터를 중복하지 않아요.

관계 (Relationships)

Name Description
success 수신된 모든 FlowFile은 success로 연결돼요.

쓰기 속성 (Writes attributes)

Name Description
sftp.remote.host SFTP Server의 호스트 이름이에요.
sftp.remote.port SFTP Server에서 연결된 포트예요.
sftp.listing.user SFTP Listing을 수행한 사용자의 이름이에요.
file.owner 원본 파일의 숫자 소유자 id예요.
file.group 원본 파일의 숫자 그룹 id예요.
file.permissions 원본 파일의 읽기/쓰기/실행 권한이에요.
file.size 원본 파일의 바이트 수예요.
file.lastModifiedTime 파일 시스템의 파일이 마지막으로 수정된 타임스탬프로 ‘yyyy-MM-dd'T'HH:mm:ssZ’ 형식이에요.
filename SFTP Server에 있는 파일 이름이에요.
path 파일을 가져온 SFTP Server의 디렉터리 정규화된 이름이에요.
mime.type 구성된 Record Writer가 제공하는 MIME Type이에요.

함께 보기 (See also)

  • org.apache.nifi.processors.standard.FetchSFTP
  • org.apache.nifi.processors.standard.GetSFTP
  • org.apache.nifi.processors.standard.PutSFTP

더 알아보기 (Learn more)