You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Camel AWS S3文件传输时记录文件名的方法咨询

获取Apache Camel AWS S3组件中的对象名称

嘿Kashif,很高兴能帮到你!在Apache Camel的AWS S3组件中,并没有直接对应FTP组件${file:name}的表达式,但你可以通过**消息头CamelAwsS3Key**来获取从S3读取的对象名称。这个头是AWS S3组件自动设置的,包含了你读取的S3对象的完整键(也就是文件名称/路径)。

修改你的代码示例

把你代码里的${file:name}替换成${header.CamelAwsS3Key}就可以了,修正拼写后的完整代码如下:

from("aws-s3://sourceBucket?amazonS3Client=#amazonS3Client")
    .log("The following file has been picked for file transfer : ${header.CamelAwsS3Key}")
    .routeId("Test My Files").log("Building Destination URI for file transfer")
    .to("aws-s3://destinationBucket?amazonS3Client=#amazonS3Client")
    .log("The following file transfer has completed : ${header.CamelAwsS3Key}");

额外有用的AWS S3消息头

除了CamelAwsS3Key,AWS S3组件还会设置其他实用的消息头,你可以根据业务需求使用:

  • ${header.CamelAwsS3BucketName}:获取当前操作的S3桶名称
  • ${header.CamelAwsS3Size}:获取S3对象的大小(单位:字节)
  • ${header.CamelAwsS3LastModified}:获取对象的最后修改时间

这样你就能轻松记录和使用S3对象的相关信息啦!

内容的提问来源于stack exchange,提问作者Kashif Hamad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:10:42