云存储是什么意思_分布式_云服务器价钱

国际 虚拟云 浏览

小编:最近我遇到了一个用例,其中需要构建一个集成流,能够从需要单独处理的传入电子邮件中过滤特定的附件。使用附件内容作为有效负载所需的代码已经在Morten Wittrock的这个优秀博客

云存储是什么意思_分布式_云服务器价钱

最近我遇到了一个用例,其中需要构建一个集成流,能够从需要单独处理的传入电子邮件中过滤特定的附件。使用附件内容作为有效负载所需的代码已经在Morten Wittrock的这个优秀博客中提供。但是,为了能够对附件名称和/或内容类型应用特定的筛选,需要更好地了解如何检索此信息。因此,在本博客中,我们将进一步研究所涉及的附件对象。

重述:检查和迭代附件的groovy脚本

下面的代码块显示了Morten博客的groovy脚本的一个变体,这是我们用例的基础。首先我们要检查是否有任何附件。如果是这种情况,我们将迭代附件对象,为此我们使用两个Groovy函数:

isEmpty():检查附件映射是否为空values():创建映射中所有可以迭代的值的集合

我更喜欢values()方法,而不是使用while循环和hasNext()检查,它可以保持代码的干净。

为了实现过滤,我们现在必须详细查看附件对象。对象的类型为javax.activation.DataHandler并且被描述为DataHandler类提供了一个一致的接口来访问许多不同源和格式的可用数据。如果我们检查可用的方法closeley,我们会发现过滤所需的两个方法:

getName:返回对象的名称,在本例中是附件的完整文件名示例值:.pdfgetContentType:返回带有完整参数的MIME类型示例值:application/pdf;name=.pdf

请注意,例如,字符集也可以是getContentType方法的一部分。

现在我们有了所需的所有筛选数据,可以完成脚本。下面是两个示例:一个用于过滤PDF文档的内容类型,另一个用于过滤特定文件。最简单的方法是使用contains方法来搜索关键字的存在。这两种方法的结果都是将文件内容作为有效负载放入集成流中,就像在前面引用的blog中一样。

可以很容易地完成的一件事是在getContentType方法中应用分号分隔的头的附加处理,以便在列表结构中获得它。这可以通过在内容上使用拆分功能来实现。

此外,在许多情况下,附件文件会转到要存储的特定SFTP位置。这可以通过将附件的名称存储在属性的头中来实现。此外,您可以通过使用变量camelefilename从groovy脚本动态设置文件名,如Sriprasad Shivaram Bhat的这篇优秀博客所示。

最后,由于Java和groovy对象的结合,在处理方面有很大的灵活性。它为许多有趣的用例和系统连接打开了大门!

当前网址:http://www.vmchk.com/icon/72219.html

 
你可能喜欢的: