6.6.8. S3 Producer 操作示例


  • 单上传:此操作将根据正文内容上传文件到 S3
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camel.txt");
          exchange.getIn().setBody("Camel rocks!");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将上传文件 camel.txt,其内容为 mycamelbucket bucket 中的内容 "Camel rocks!"

  • 多部分上传:此操作将根据正文内容执行文件的多部分上传到 S3
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(AWS2S3Constants.KEY, "empty.txt");
          exchange.getIn().setBody(new File("src/empty.txt"));
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&multiPartUpload=true&autoCreateBucket=true&partSize=1048576")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将执行文件 empty.txt 的多部分上传,它基于 mycamelbucket bucket 中文件 src/empty.txt 的内容

  • CopyObject:此操作将对象从一个存储桶复制到不同的存储桶
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.BUCKET_DESTINATION_NAME, "camelDestinationBucket");
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
          exchange.getIn().setHeader(S3Constants.DESTINATION_KEY, "camelDestinationKey");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=copyObject")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作会将带有标头 camelDestinationKey 中的名称的对象复制到 Bucket mycamelbucket 中的 camelDestinationBucket 存储桶。

  • DeleteObject:此操作从存储桶中删除对象
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteObject")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将从 bucket mycamelbucket 中删除对象 camelKey。

  • ListBuckets:此操作列出了此区域中此帐户的存储桶
  from("direct:start")
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listBuckets")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将列出此帐户的存储桶

  • DeleteBucket:此操作删除指定为 URI 参数或标头的存储桶
  from("direct:start")
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=deleteBucket")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将删除存储桶 mycamelbucket

  • ListObjects :此操作列表在特定存储桶中的对象
  from("direct:start")
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=listObjects")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将列出 mycamelbucket bucket 中的对象

  • GetObject:此操作获取特定存储桶中的单个对象
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObject")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将返回与 mycamelbucket bucket 中 camelKey 对象相关的 S3Object 实例。

  • GetObjectRange:此操作获得特定存储桶中的单个对象范围
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
          exchange.getIn().setHeader(S3Constants.RANGE_START, "0");
          exchange.getIn().setHeader(S3Constants.RANGE_END, "9");
      }
  })
  .to("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&operation=getObjectRange")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将返回与 mycamelbucket bucket 中 camelKey 对象相关的 S3Object 实例,其中包含从 0 到 9 的字节数。

  • CreateDownloadLink:此操作将通过 S3 Presigner 返回下载链接
  from("direct:start").process(new Processor() {

      @Override
      public void process(Exchange exchange) throws Exception {
          exchange.getIn().setHeader(S3Constants.KEY, "camelKey");
      }
  })
  .to("aws2-s3://mycamelbucket?accessKey=xxx&secretKey=yyy&region=region&operation=createDownloadLink")
  .to("mock:result");
Copy to Clipboard Toggle word wrap

此操作将返回存储桶 mycamelbucket 和 region 区域中的 camel-key 文件的下载链接 url

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat