2017-03-08 1 views
3

S3에서 7 일이 지난 파일을 삭제해야하는 Nifi 플로우가 있습니다. 나는 그것을하기 위하여 뒤에 오는 체제를 이용했다.Nifi : X 일이 지난 경우 S3에서 파일을 삭제하십시오.

UpdateAttribute 프로세서에 현재 신기원 시간을 갖는 epoch_now 속성이 있습니다. 에

RouteOnAttribute 나는이 표현하여 젊은 7 일 이상있는 파일 필터링 다음과 같은 논리를 가지고 : ${epoch_now:minus(${s3.lastModified}):ge(604800000)}

문제는 ListS3 프로세서 상태를 유지하고 모든 목록을 다시하지 않을입니다 파일이 만료되었거나 삭제되어야 하는지를 계산할 다음 번에 파일을 만듭니다. 주변을 둘러 보았지만 상태를 유지하지 못하는 Get* 프로세서를 찾을 수 없었습니다. 주기적으로 실행되고 7 일 된 파일을 계속 삭제할 수 있도록이 흐름을 수정하려면 어떻게합니까?

enter image description here

답변

3

당신은 NiFi 현재 S3 그런 식으로 쿼리 프로세서가없는, 정확합니다.

S3 Lifecycle Rule에 더 적합 할 수 있습니다. 특정 키 접두사에 대한 규칙을 구성 할 수 있으므로 S3는 7 일 후에 자동으로 개체를 삭제합니다. S3 콘솔에서 :

  • 가 클릭 규칙 추가 라이프 사이클 섹션을 확장 양동이
  • 선택 속성 선택을 위해 마법사 스타일의 인터페이스가있다

구성.

+0

실제로 파일의 로컬 복사본을 보관하고'GetFile' 프로세서를 사용하여 해당 로컬 디렉터리를 항상 감시하고 파일이 7 일이 지난 경우 로컬에서 삭제하고'$ {filename}' 'DeleteS3Object'에 추가하고 S3에서 삭제하십시오. – summerNight

관련 문제