주요 콘텐츠로 건너뛰기

작업 개요

다음 섹션에서는 Glasswall Embedded Engine를 성공적으로 운영하기 위한 핵심 개념을 설명합니다.

세션

Application Programming Interface (API)는 세션 기반입니다. 세션은 파일과 해당 파일을 처리하는 데 사용되는 메커니즘을 나타내는 유형입니다.

  • You create a Session object by calling GW2OpenSession which returns a session handle.
    • 둘 이상의 세션이 활성 상태일 수 있으므로, 특정 세션의 데이터에 접근하고 변수를 설정하기 위해 Session ID를 사용합니다.
  • 입력과 출력, 그리고 입력 및 출력의 형식(메모리 또는 파일)을 등록하기 위해 세션 핸들을 다른 API 함수에 전달합니다.
  • 그런 다음 GW2RunSession 함수를 호출하여 파일을 처리하고, GW2CloseSession을 호출하여 세션을 닫습니다.

각 세션은 열릴 때 자체 메모리 버퍼 집합이 할당됩니다. 이러한 버퍼는 세션이 열려 있는 동안 계속 접근할 수 있습니다. 세션이 닫히면 데이터는 더 이상 사용할 수 없으며 할당된 메모리가 해제됩니다.

세션은 반드시 항상 닫아야 합니다. 여기에는 처리 문제가 발생하여 예상된 작업 흐름이 중단되는 시나리오도 포함됩니다. 이 경우 리소스 관리를 위해 설계된 다양한 방어적 코딩 패턴을 적용할 수 있습니다. 예: Java의 try-with-resources, Python의 context-handlers.

동시에 열려 있는 세션 수가 많을수록 전체 메모리 요구량이 커진다는 점에 유의하십시오. 여러 스레드를 사용한 파일 처리는 지원되지 않습니다. 병렬 처리를 지원하기 위해 여러 프로세스를 생성하는 것을 권장합니다.

사용 사례: 파일을 안전하게 만들고/또는 파일 내용에 대한 설명 보고서를 생성

Protect / Analysis Mode

Embedded Engine API에 대한 추가 정보는 관련 API 함수 페이지에 문서화되어 있습니다.

policy 파일

policy 파일은 Glasswall가 제공된 파일을 어떻게 처리할지 결정하는 데 사용됩니다. 샘플 policy 파일은 Embedded Engine 릴리스 패키지에 포함되어 제공됩니다.

Glasswall를 실행하는 데 policy 파일이 필수는 아니지만, 대부분의 경우 요구 사항에 맞게 처리를 사용자 지정하기 위해 사용됩니다. policy 파일을 사용하는 경우 각 세션에 등록해야 합니다.

policy 파일을 지정하지 않으면 콘텐츠 관리 설정은 기본적으로 파일을 sanitise하도록 설정됩니다. sysConfig 옵션에도 기본 설정이 적용됩니다.

자세한 내용은 Content ManagementSystem Configuration을 참조하세요.

Glasswall의 반환 값

Glasswall API 내 대부분의 함수는 성공 또는 실패를 나타내는 정수를 반환합니다. 0 또는 1은 성공을 의미하고, 음수(예: -1)는 실패를 의미합니다.

일부 API 호출은 이 패턴을 따르지 않습니다. 예를 들어 GW2OpenSession 함수는 -1 오류 또는 새로 생성된 세션의 ID(양의 정수)를 반환합니다. 반환 값 표는 API Overview 페이지에서 확인할 수 있습니다.

데이터 관리

Glasswall는 파일 및/또는 버퍼를 사용하여 데이터를 처리하고 저장합니다. 이러한 처리에 대한 데이터 요구 사항은 아래 섹션에 설명되어 있습니다.

파일

파일 기반 Glasswall API 호출에는 매개변수로 파일 경로가 필요합니다. 이 파일 이름은 NULL 문자로 종료되는 문자 배열인 C 형식 문자열로 인코딩되어야 합니다. UTF-8 인코딩을 사용해야 합니다.

메모리

메모리 기반 Glasswall API 호출에는 하나 이상의 메모리 버퍼를 사용해야 합니다. 이러한 버퍼는 첫 번째 요소에 대한 포인터와 바이트 단위 버퍼 길이로 정의됩니다. 이 접근 방식은 NULL 문자를 포함하는 파일도 올바르게 처리할 수 있게 합니다.

가져오기/입력 함수

이 함수들은 버퍼의 첫 번째 데이터에 대한 포인터와 바이트 단위 버퍼 길이를 필요로 합니다.

내보내기/출력 함수

이 함수들은 처리된 데이터를 반환할 때 Glasswall가 사용해야 하는 버퍼를 지정합니다. 아래 설명과 같이, Glasswall는 버퍼 길이에 대한 포인터와 첫 번째 요소에 대한 포인터를 모두 필요로 합니다:

  • 버퍼의 첫 번째 요소에 대한 포인터의 포인터
  • 버퍼 길이에 대한 포인터 (size_t *)

이 버퍼의 크기는 세션을 실행하기 전에는 알 수 없으므로 이러한 추가 추상화 계층이 필요합니다. 이러한 포인터를 역참조하면 Glasswall에서 반환된 데이터에 접근할 수 있습니다.