IT/Elasticsearch

[Elasticsearch] 회사 내부 첨부파일의 내용을 통합 검색할 수 있다면? (feat. Fasoo DRM, Tika, Confluence)

snapcoder 2024. 7. 5. 20:13
728x90
반응형
SMALL

※ 사내 기밀은 담지 않도록 ※

[Elasticsearch] 회사 내부 첨부파일의 내용을 통합 검색할 수 있다면? (feat. Fasoo DRM, Tika, Confluence)

 

 

 

 

구글링할 수 없는 내부 문서중에서 어떤거 하나 찾으려면
일일이 열어보고~ ~   스크롤을 돌려가며~~ 눈을 부릅뜨고 찾는다..?

 

시력 베린다..

 

개별 파일을 직접 열어보지 않고도

내부 문서의 위치와 내용을 효율적으로 파악하자~~~~~~~~~

 

 

 

 

 

 

 

회사 내부에서 업로드된 다양한 첨부파일(pdf, csv, xlsx 등)에 포함된

계약서, 매뉴얼, 업무 프로세스 등의 내용을 효율적으로 검색하기 위해

Elasticsearch를 활용하자.

 

추가적으로 Fasoo DRM 복호화와 Tika 라이브러리를 사용하여 첨부파일 속 컨텐츠를 추출했다.

 

 

 

 

 

 

 

 

ex)

컨플루언스 커뮤니티에 업로드되어있는

첨부파일을 예시로...

 

 

 

 

1. 첨부파일 API 호출

우선, 컨플루언스 API를 활용하여 업로드된 첨부파일을 다운로드합니다. 이 과정에서 "_link" 필드의 "download" 값을 사용합니다.

 

컨플루언스 다운로드 api 공식 문서는 다음과 같다.

https://docs.atlassian.com/atlassian-confluence/REST/6.6.0/#content/{id}/child/attachment-getAttachments

 

https://docs.atlassian.com/atlassian-confluence/REST/6.6.0/#content/%7Bid%7D/child/attachment-getAttachments

Deletes a labels to the specified content. When calling this method through REST the label parameter doesn't accept "/" characters in label names, because of security constraints. For this case please use the query parameter version of this method (/conten

docs.atlassian.com

 

 

 

포스트맨에서 호출 테스트

 

"_link" 밑에 "download" 의 value값이

내가 원하는 API 주소.

 

 

 

 

 

 


첨부파일 다운로드 GET API 구현

 

이제 물리파일이 로컬이나 개발서버에 생겼을 것이다.

// 다운로드 저장경로 잘 체크하길 바람..삽질하지 않도록...

 

 

 

 

 

 

 



Tika 컨텐츠 추출해보면 알겠지만

암호화 된 파일은 추출이 안된다.

아무쪼록 Error 발생

 

복호화를 해주어야 한다.

 

 

 

 

 

 

 

2. Fasoo DRM 복호화

다운로드한 첨부파일 중에서 암호화된 파일은 Tika로 직접 컨텐츠를 추출할 수 없습니다. 따라서 Fasoo DRM을 통해 복호화를 진행합니다.

 

POST 호출. 사진생략

참고로 파라미터에 담기는 토큰정보나 APIM url 방화벽 이슈덕에 삽질을 여기서 많이했다....

 

 

 

이후에는 생각보다 어렵지 않았다.

 

 

 

 

 

 

 

 

 

3. Tika 컨텐츠 추출

복호화된 파일에서 Tika를 사용하여 텍스트 기반의 컨텐츠를 추출합니다.

4. 다운로드 파일 삭제

추출이 완료된 파일은 보안 및 용량 관리를 위해 삭제합니다.

 

 

 

 

 

 

5. 데이터 저장

추출한 컨텐츠를 데이터베이스에 저장하여 Elasticsearch로 색인화합니다.

 

해당 페이지에 있는 sql 파일이

 

 

 

다음과 같이 추출결과 로그 확인~~~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST