224장. MIME Multipart DataFormat
Camel 버전 2.17에서 사용 가능
첨부 파일이 있는 Camel 메시지를 메시지 본문(및 첨부 파일 없음)으로 MIME-Multipart 메시지가 있는 Camel 메시지로 변환할 수 있는 이 데이터 형식입니다.
이에 대한 사용 사례는 사용자가 특수 프로토콜 구현(예: HTTP 끝점을 통해 MIME-multipart을 전송) 또는 일종의 터널링 솔루션으로 첨부 파일을 지원하지 않는 끝점을 통해 첨부 파일을 보낼 수 있도록 하는 것입니다(예: camel-jms는 첨부 파일을 지원하지 않지만 메시지를 MIME-Multipart으로 마샬링하여) 이를 JMS 큐로 전송하고 JMS 대기열에서 메시지를 수신하고 다시 요약 해제(연결이 있는 메시지 본문으로)합니다.
mime-multipart 데이터 형식의 marshal 옵션은 첨부 파일이 있는 메시지를 MIME-Multipart 메시지로 변환합니다. "multipartWithoutAttachment" 매개변수가 true로 설정되면 매개 변수가 false로 설정된 경우 첨부 파일 없이 메시지를 다중 파트로 마샬링합니다. 매개 변수가 false로 설정되면 메시지를 그대로 둡니다.
mulitpart의 MIME 헤더는 "MIME-Version"이고 "Content-Type"은 메시지 헤더로 설정됩니다. "headersInline" 매개변수가 true로 설정되면 어떤 경우에도 MIME multipart 메시지도 생성합니다.
또한 multipart의 MIME 헤더는 camel 헤더가 아닌 메시지 본문의 일부로 작성됩니다.
mime-multipart 데이터 형식의 unmarshal 옵션은 MIME-Multipart 메시지를 첨부 파일이 있는 camel 메시지로 변환하고 다른 메시지만 남겨 둡니다. MIME-Multipart 메시지의 MIME-Headers를 Camel 헤더로 설정해야 합니다. unmarshalling은 "Content-Type" 헤더가 "multipart" 유형으로 설정된 경우에만 수행됩니다. 옵션 "headersInline"이 true로 설정되면 본문은 항상 MIME 메시지로 구문 분석됩니다. 메시지 본문이 스트림이고 스트림 캐싱이 활성화되지 않은 경우 메시지 본문에서 MIME 헤더가 아닌 메시지 본문은 빈 메시지로 대체됩니다. Camel 버전 2.17.1까지 이 작업은 본문 유형 및 스트림 캐시 설정에 관계없이 MIME multipart 메시지를 포함하지 않는 모든 메시지 본문이 발생합니다.
224.1. 옵션
MIME Multipart 데이터 형식은 아래에 나열된 6 가지 옵션을 지원합니다.
이름 | 기본 | Java Type | 설명 |
---|---|---|---|
multipartSubType |
|
| MIME Multipart의 하위 유형을 지정합니다. 기본값은 혼합되어 있습니다. |
multipartWithoutAttachment |
|
| 첨부 파일이 없는 메시지도 MIME Multipart로 마샬링되는지 여부를 정의합니다(하나의 본문 부분만 있음). 기본값은 false입니다. |
headersInline |
|
| MIME-Multipart 헤더가 메시지 본문(true)의 일부인지 또는 Camel 헤더(false)로 설정되어 있는지 여부를 정의합니다. 기본값은 false입니다. |
includeHeaders |
| MIME multipart에 MIME 헤더로 포함된 Camel 헤더를 정의하는 regex입니다. headersInline이 true로 설정된 경우에만 이 기능이 작동합니다. 기본값은 헤더를 포함하지 않습니다. | |
binaryContent |
|
| MIME multipart의 바이너리 부분이 바이너리(true)인지 또는 Base-64로 인코딩된 (false) Default가 false인지 여부를 정의합니다. |
contentTypeHeader |
|
| 데이터 형식이 이렇게 할 수 있는 경우 데이터 형식의 형식으로 Content-Type 헤더를 설정해야 하는지 여부입니다. 예를 들어 데이터 형식의 애플리케이션/xml은 XML로 마샬링하거나 데이터 형식의 경우 JSon으로 마샬링하는 애플리케이션/json의 경우 애플리케이션/json입니다. |