【问题标题】:Keep the filename and filetype in AWS S3 upload using Camel使用 Camel 在 AWS S3 上传中保留文件名和文件类型
【发布时间】:2021-10-30 16:24:38
【问题描述】:

作为 AWS 和 S3 的初学者,我正在尝试集成以使用 apache camel 将 Sample.txt 文件从我的本地 sftp 上传到 s3

<route>
        <from uri="sftp://testuser@localhost?password=test&amp;delete=true" />
        <setHeader name="CamelAwsS3Key">
            <constant>test</constant>
        </setHeader>
        <to uri="aws-s3://myTestBucket?accessKey=******&amp;secretKey=RAW(******)&amp;deleteAfterWrite=false&amp;region=AP_SOUTH_1" />
    </route>

这可行,但文件总是以名称 test 上传,并且类型也未显示。 尝试了多种方法。 任何建议都会有所帮助。

【问题讨论】:

  • 好吧,您将文件名设置为testCamelAwsS3Key 标头)。关于类型 - 你的意思是 Content-Type 对象属性?
  • @gusto2 我添加了 headerkey,因为它显示为路由的强制值。类型,是的。我以为系统会自动识别类型。我可以提供任何替代方案吗?
  • 您可以使用simple 表达式将标题设置为文件名(我不确定sftp 将文件名存储在哪里),您也可以尝试设置CamelAwsS3ContentType @987654321 @

标签: java amazon-s3 apache-camel apache-camel-aws


【解决方案1】:

在传递密钥并使用 SFTP simple 提供的文件名时问题已得到解决

<route>
        <from uri="sftp://testuser@localhost?password=test&amp;delete=true" />
        <setHeader name="CamelAwsS3Key">
             <simple>${in.header.camelFileName}</simple>
        </setHeader>
        <to uri="aws-s3://myTestBucket?accessKey=******&amp;secretKey=RAW(******)&amp;deleteAfterWrite=false&amp;region=AP_SOUTH_1" />
    </route>

感谢@gusto2 的支持。

此外,您还可以通过更改将上传文件添加到特定文件夹,

<simple>{foldername}/${in.header.camelFileName}</simple>

【讨论】:

    猜你喜欢
    • 2021-01-30
    • 2018-07-04
    • 1970-01-01
    • 2019-02-18
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多