第 224 章 MIME 多部分数据格式


从 Camel 版本 2.17 开始提供

此数据格式可以将带有附件的 Camel 消息转换为带有 MIME-Multipart 消息作为消息正文(没有附件)的 Camel 消息。

这种情况的用例是允许用户通过不支持附件的端点发送附件,作为特殊协议实现(例如,通过 HTTP 端点发送 MIME 多部分),或作为一种隧道解决方案(例如,camel-jms 不支持附件),而是将附件发送到 MIME-Multipart, 将它发送到 JMS 队列,从 JMS 队列接收消息,并再次接收该消息(传入带有附件的消息正文)。

mime-multipart 数据格式的 marshal 选项将带有附件的消息转换为 MIME 多部分消息。如果参数 "multipartWithoutAttachment" 设为 true,它也会在没有附件的情况下将 marshal 消息放入一个部分,如果参数设置为 false,它将单独保留该消息。

mulitpart 的 MIME 标头是 "MIME-Version" 和 "Content-Type" 设置为消息的 camel 标头。如果参数 "headersInline" 设为 true,它也会在任何情况下创建一个 MIME 多部分信息。
另外,多部分的 MIME 标头作为消息正文的一部分编写,而不是作为 camel 标头编写。

mime-multipart 数据格式的 unmarshal 选项会将 MIME-Multipart 消息转换为带有附件的 camel 消息,并只保留其他消息。MIME-Multipart 消息的 MIME-Headers 必须设置为 Camel 标头。只有 "Content-Type" 标头被设置为 "multipart" 类型时才会发生 unmarshalling。如果选项 "headersInline" 设为 true,则正文始终被解析为 MIME 消息。因此,如果消息正文是流,流缓存没有启用,则消息正文中实际不是 MIME 标头的消息正文将被空消息替换。直到 Camel 版本 2.17.1,无论正文类型和流缓存设置是什么,都会出现所有不包含 MIME 多部分消息的消息。

224.1. 选项

MIME 多部分格式支持 6 个选项,如下所列。

名称默认值Java 类型描述

multipartSubType

mixed

字符串

指定 MIME 多部分的子类型。默认为混合的。

multipartWithoutAttachment

false

布尔值

定义消息是否也被分成一个 MIME 多部分(只有一个正文部分)。默认值为 false。

headersInline

false

布尔值

定义 MIME-Multipart 标头是消息正文(true)的一部分,或者设置为 Camel 标头(false)。默认值为 false。

includeHeaders

 

字符串

定义哪些 Camel 标头也包含在 MIME 多部分的正则表达式。这只有在 headersInline 设置为 true 时才可以正常工作。默认为不包含标头

binaryContent

false

布尔值

定义 MIME 多部分的内容是否为二进制(true)还是 Base-64 编码(false)默认值。

contentTypeHeader

false

布尔值

如果数据格式能够这样做,则数据格式是否应该使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式到 XML 的 application/xml 或用于数据格式的 application/json 发送到 JSon 等。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.