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