当前位置: 首页 > 知识库问答 >
问题:

如何使用Camel和Hazelcast将文件从SFTP发送到S3?

巩枫
2023-03-14
from(source)
    .pollEnrich(source)
    .log("Uploading file ${file:name} started...")
    .setHeader(S3Constants.CONTENT_LENGTH, simple("${in.header.CamelFileLength}"))
    .setHeader(S3Constants.KEY, simple("${in.header.CamelFileNameOnly}"))
    .toF("hazelcast:%sfoo", HazelcastConstants.SEDA_PREFIX);

fromF("hazelcast:%sfoo", HazelcastConstants.SEDA_PREFIX)
     .idempotentConsumer(simple("*"), hazelcastIdempotentRepo)
     .setHeader(HazelcastConstants.OBJECT_ID, simple("${exchangeId}"))
     .setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))
     //.setHeader(S3Constants.CONTENT_LENGTH, simple("${in.header.CamelAwsS3ContentLength}"))
     .setHeader(S3Constants.KEY, header(S3Constants.KEY))  // How to get file name here ??
     .toF(destination)
     .log("Uploading file ${file:name} completed...");
java.lang.IllegalArgumentException: AWS S3 Key header missing.
.setHeader(S3Constants.KEY, simple("${in.header.CamelFileNameOnly}"))
.setHeader(S3Constants.KEY, constant("test.txt"))

如何从Hazelcast队列中获取文件名头?

共有1个答案

云承天
2023-03-14

有关文件语言,请参阅Camel文档

http://camel.apache.org/file-language.html

使用simple language(http://camel.apache.org/simple.html)使用${file:onlyname}获取extn中唯一的name部分

 类似资料:
  • 这是我必须做的:外部服务器定期生成3个文件:“FI.date.nnnnn”、“FS.date.nnnnn”和GO.date.nnnnn”。这三个文件与相同的日期和nnnnn(=序列号)相关联。每个“三元组”都是唯一的名称。当GO文件存在时,我必须下载这些文件。这个GO文件是空的。 我用骆驼这个路线: 我使用“include=GO.*”来等待GO文件。 在我的AfterReceiveGo中,我使用了

  • 我正在使用Apache Camel处理SFTP目录中的文件。该目录将同时接收多个文件。如何控制camel按顺序使用文件?例如,目录my\u directory将同时接收文件file1、file2、file3、file4。我希望camel按照file1-file2-file3-file4的顺序消费。

  • 但我不断得到以下错误: 请让我知道可以为此做些什么。

  • 问题内容: 我的问题是可以使用ajax(jquery)将图像上传到服务器吗 以下是我的ajax脚本,无需重新加载页面即可发送文本 是否可以修改它以发送图像? 问题答案: 这可行。 是您要找的东西吗?

  • 要求:我们正在尝试实现一个应用程序,它的功能是使用spring sftp outbound gateway通过sftp将文件从入站文件夹移动到处理文件夹。我们已经实现了sftp出站网关,如下所示。当我们执行应用程序时,它没有给出任何信息,即既没有异常也没有预期的输出(即文件没有移动到sftp上) 我想移动*. txt文件从'/tmp/datlaa到 /tmp/datlaa/archive. 你能从

  • 问题内容: Oracle文档说- TextMessage对象用于发送包含java.lang.String的消息。它从Message界面继承>,并添加文本消息正文。此消息类型可用于传输基于文本的消息,包括XML> content的消息。 这怎么可能?XML的内容是否仅是可发送的(通过将其转换为对象然后发送)?是否可以将XML文件以任何方式真正放入队列,然后在接收方读取? 问题答案: 请使用它,并且您