ListS3 2025.5.31.15¶
번들¶
org.apache.nifi | nifi-aws-nar
설명¶
S3 버킷에서 오브젝트 목록을 검색합니다. 목록에 있는 각 오브젝트에 대해 해당 오브젝트를 나타내는 FlowFile 을 생성하여 FetchS3Object 와 함께 가져올 수 있도록 합니다. 이 프로세서는 클러스터의 기본 노드에서만 실행되도록 설계되었습니다. 기본 노드가 변경되면 새 기본 노드는 모든 데이터를 복제하지 않고 이전 노드가 중단한 부분을 이어받습니다.
입력 요구 사항¶
FORBIDDEN
민감한 동적 속성 지원¶
false
속성¶
속성 |
설명 |
---|---|
AWS 자격 증명 공급자 서비스 |
AWS 자격 증명 공급자를 획득하는 데 사용되는 컨트롤러 서비스 |
버킷 |
상호 작용할 S3 버킷 |
통신 시간 제한 |
AWS 에 연결을 설정하거나 AWS 에서 데이터를 수신하기 위해 시간 초과 전에 대기해야 하는 시간입니다. |
Endpoint Override URL |
스키마, 호스트, 포트, 경로 등 기본값인 AWS 대신 사용할 엔드포인트 URL 을 설정합니다. AWS 라이브러리는 AWS 리전을 기반으로 엔드포인트 URL 을 선택하지만, 이 속성은 선택한 엔드포인트 URL 을 재정의하여 다른 S3 호환 엔드포인트와 함께 사용할 수 있도록 합니다. |
목록 배치 크기 |
Record Writer를 사용하지 않는 경우, 이 속성은 단일 배치에 얼마나 많은 S3 오브젝트를 배치할지 결정합니다. 이 번호에 도달하면 생성된 FlowFiles 주소가 프로세서 밖으로 전송됩니다. 이 값을 낮게 설정하면 전체 목록이 완료되기 전에 FlowFiles 을 전송하여 지연 시간을 줄일 수 있습니다. 그러나 성능이 크게 저하될 수 있습니다. 값이 클수록 FlowFiles 을 전송하기 전에 모든 정보를 저장하는 데 더 많은 메모리가 필요할 수 있습니다. Record Writer의 주요 이점 중 하나는 전체 목록을 1개의 FlowFile 로 전송할 수 있다는 것이므로 Record Writer를 사용하는 경우 이 속성은 무시됩니다. |
리전 |
연결할 AWS 리전입니다. |
SSL 컨텍스트 서비스 |
공급자가 제공하는 경우 연결을 만드는 데 사용할 선택적 SSL 컨텍스트 서비스를 지정합니다 |
Signer Override |
AWS S3 라이브러리는 기본적으로 서명 버전 4를 사용하지만 이 속성을 사용하면 버전 2 서명자를 지정하여 이전 S3 호환 서비스를 지원하거나 사용자 정의 서명자 구현을 플러그인할 수도 있습니다. |
custom-signer-class-name |
사용자 지정 서명자 클래스의 정규화된 클래스 이름입니다. 서명자는 com.amazonaws.auth.Signer 인터페이스를 구현해야 합니다. |
custom-signer-module-location |
사용자 지정 서명자의 JAR 파일 및 종속성(있는 경우)을 포함하는 파일 및/또는 디렉터리 경로를 쉼표로 구분한 목록입니다. |
구분_기호 |
버킷 내 디렉터리를 구분하는 데 사용되는 문자열입니다. 이 필드의 올바른 사용법은 AWS 설명서를 참조하십시오. |
et-initial-listing-target |
초기 목록 처리 방법을 지정합니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
et-state-cache |
이 프로세서가 NiFi 재시작 또는 기본 노드 변경 시 목록을 재개할 수 있도록 지정된 캐시 저장소에 목록 엔터티가 저장됩니다. ‘Tracking Entities’ 전략은 마지막 ‘Tracking Time Window’ 내에 나열된 모든 엔터티의 추적 정보를 필요로 합니다. 많은 수의 엔터티를 지원하기 위해 이 전략에서는 관리 상태 대신 DistributedMapCache 를 사용합니다. 캐시 키 형식은 ‘ListedEntities::{processorId}(::{nodeId})’입니다. 노드 목록 엔터티별로 추적하는 경우 선택 사항인 ‘::{nodeId}’ 부분이 추가되어 상태를 별도로 관리합니다. 예: 클러스터 차원 캐시 키 = ‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b’, 노드별 캐시 키 = ‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3’저장된 캐시 콘텐츠는 Gzip으로 압축된 JSON 문자열입니다. 캐시 키는 대상 목록 구성이 변경되면 삭제됩니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
et-time-window |
이 프로세서가 이미 목록에 있는 엔터티를 추적할 기간을 지정합니다. ‘Tracking Entities’ 전략은 타임스탬프가 지정된 시간 윈도우 내에 있는 엔터티를 선택할 수 있습니다. 예를 들어, ‘30분’으로 설정하면 이 프로세서가 실행될 때 최근 30분 내에 타임스탬프가 있는 모든 엔터티가 목록 대상이 됩니다. 목록에 있는 엔터티는 1. 이미 목록에 있는 엔터티에 존재하지 않거나, 2. 캐시된 엔터티보다 타임스탬프가 더 새롭거나, 3. 캐시된 엔터티와 크기가 다른 경우의 조건 중 하나를 충족하면 ‘신규/업데이트’로 간주되며 FlowFile 이 전송됩니다. 캐시된 엔터티의 타임스탬프가 지정된 시간 윈도우보다 오래되면 해당 엔터티는 캐시된 이미 목록에 있는 엔터티에서 제거됩니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
목록 유형 |
원래 목록 오브젝트를 사용할지 아니면 최신 목록 오브젝트 버전 2 엔드포인트를 사용할지 지정합니다. |
listing-strategy |
신규/업데이트된 엔터티를 확인하는 방법을 지정합니다. 자세한 내용은 각 전략 설명을 참조하십시오. |
max-age |
S3 오브젝트가 고려될 수 있는 최대 수명, 이 시간(마지막 수정 날짜 기준)보다 오래된 오브젝트는 무시됩니다 |
최소 수명 |
S3 오브젝트가 고려되기 위한 최소 수명, 이 시간(마지막 수정 날짜 기준) 미만의 오브젝트는 무시됩니다 |
접두사 |
오브젝트 목록을 필터링하는 데 사용되는 접두사입니다. 슬래시 ‘/’로 시작하지 마십시오. 대부분의 경우 슬래시 ‘/’로 끝나야 합니다. |
프록시 구성 서비스 |
네트워크 요청을 프록시할 프록시 구성 컨트롤러 서비스를 지정합니다. |
record-writer |
목록 작성에 사용할 Record Writer를 지정합니다. 지정하지 않으면 목록에 있는 각 엔터티에 대해 FlowFile 이 1개씩 생성됩니다. Record Writer를 지정하면 모든 엔터티는 개별 FlowFiles 에 특성을 추가하는 대신 단일 FlowFile 에 기록됩니다. |
requester-pays |
true이면 요청자가 S3 버킷 목록 등록과 관련된 모든 비용을 지불하는 데 동의함을 나타냅니다. 이렇게 하면 ‘x-amz-request-payer’ 헤더가 ‘요청자’로 설정됩니다. 이 설정은 ‘Use Versions’이 ‘true’인 경우에는 적용되지 않습니다. |
use-versions |
해당되는 경우 S3 버전을 사용할지 여부를 지정합니다. false이면 각 오브젝트의 최신 버전만 반환됩니다. |
write-s3-object-tags |
‘true’로 설정하면 S3 오브젝트와 연결된 태그가 FlowFile 특성으로 작성됩니다 |
write-s3-user-metadata |
‘true’로 설정하면 S3 오브젝트와 관련된 사용자 정의 메타데이터가 FlowFile 특성/레코드에 추가됩니다 |
상태 관리¶
범위 |
설명 |
---|---|
CLUSTER |
키 목록을 수행한 후 최신 키의 타임스탬프가 동일한 타임스탬프를 공유하는 키와 함께 저장됩니다. 이렇게 하면 프로세서가 다음에 프로세서를 실행할 때 이 날짜 이후에 추가되거나 수정된 키만 목록에 표시할 수 있습니다. 상태는 클러스터 전체에 저장되므로 이 프로세서는 기본 노드에서만 실행될 수 있으며, 새로운 기본 노드가 선택되면 새 노드는 데이터를 복제하지 않고 이전 노드가 중단한 부분을 이어받을 수 있습니다. |
관계¶
이름 |
설명 |
---|---|
성공 |
FlowFiles 은 성공적으로 처리된 후 이 관계로 라우팅됩니다. |
Writes 특성¶
이름 |
설명 |
---|---|
s3.bucket |
S3 버킷의 이름 |
s3.region |
S3 버킷의 리전 |
파일 이름 |
파일 이름 |
s3.etag |
파일이 변경되었는지 확인하는 데 사용할 수 있는 ETag |
s3.isLatest |
오브젝트의 최신 버전인지 여부를 나타내는 부울입니다 |
s3.lastModified |
epoch 이후 마지막으로 수정된 시간(밀리초 단위, UTC시간 기준) |
s3.length |
오브젝트의 크기(바이트)입니다 |
s3.storeClass |
오브젝트의 저장소 클래스 |
s3.version |
해당되는 경우 오브젝트의 버전입니다 |
s3.tag.___ |
‘Write Object Tags’가 ‘true’로 설정되어 있으면 목록에 있는 S3 오브젝트에 연결된 태그가 flowfile 특성의 일부로 기록됩니다 |
s3.user.metadata.___ |
‘Write User Metadata’가 ‘true’로 설정되어 있으면 목록에 있는 S3 오브젝트에 연결된 사용자 정의 메타데이터가 flowfile 특성의 일부로 기록됩니다 |