ApacheCamel无法处理通过AWSS3控制台创建的文件夹,却可以处理通过编程方式创建的文件夹。
创始人
2024-09-05 14:30:20
0

这可能是由于AWS S3控制台创建的文件夹不是真正的文件夹,而是“伪文件夹”。要解决此问题,可以在Camel路由之前使用AWS SDK将“伪文件夹”转换为真正的文件夹。

以下是Java代码示例,演示如何使用AWS SDK将S3中的“伪文件夹”转换为真正的文件夹:

import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CopyObjectRequest;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.aws.s3.S3Constants;
import org.apache.camel.impl.DefaultCamelContext;

public class S3RouteBuilder extends RouteBuilder {

  private final AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
  
  public static void main(String[] args) throws Exception {
    DefaultCamelContext context = new DefaultCamelContext();
    context.addRoutes(new S3RouteBuilder());
    context.start();
    Thread.sleep(5000);
    context.stop();
  }

  @Override
  public void configure() {
    from("aws-s3://my-bucket?amazonS3Client=#s3Client&autoCreateBucket=true&prefix=my-folder/")
        .process(new Processor() {
          @Override
          public void process(Exchange exchange) throws Exception {
            S3ObjectSummary obj = exchange.getIn().getBody(S3ObjectSummary.class);

            // Check if current object is a 'pseudo-folder'
            if (obj.getKey().endsWith("/")) {
              String folderName = obj.getKey().replaceFirst("^my-folder/", "");

              // Copy the object to a dummy key with content type as 'application/x-directory'
              CopyObjectRequest copyObjRequest = new CopyObjectRequest(
                  obj.getBucketName(),
                  obj.getKey(),
                  obj.getBucketName(),

相关内容

热门资讯

透视安卓版!wepoker祈福... 透视安卓版!wepoker祈福有用吗,xpoker辅助助手(透视)往昔有挂(新版2025教程)1、完...
透视透视挂!哈糖大菠萝辅助器,... 透视透视挂!哈糖大菠萝辅助器,pokemomo辅助工具,本来存在有挂(2025教程);该软件可以轻松...
透视数据!aapoker辅助器... 透视数据!aapoker辅助器怎么用,智星菠萝辅助(透视)原生是真的有挂(攻略教程);1、起透看视 ...
透视代打!pokernow辅助... 透视代打!pokernow辅助控制,约局吧开挂神器是真的吗,真是是有挂(2025新版)1、让任何用户...
透视苹果版!wepoker插件... 透视苹果版!wepoker插件功能辅助器,aapoker公共底牌(透视)一贯真的是有挂(新2025教...
透视教学!werplan外挂,... 透视教学!werplan外挂,德州局透视,确实是真的有挂(教你攻略)德州局透视辅助器中分为三种模型:...
透视辅助!wepoker模拟器... 透视辅助!wepoker模拟器哪个好用,wpk插件辅助(透视)起初存在有挂(分享教程)该软件可以轻松...
透视透视挂!pokemmo修改... 透视透视挂!pokemmo修改器手机版,约局吧作弊脚本,竟然真的有挂(AI教程)1、每一步都需要思考...
透视了解!约局吧是否有挂,we... 透视了解!约局吧是否有挂,wepoker数据分析(透视)本然真的是有挂(黑科技教程)一、约局吧是否有...
透视工具!约局吧开挂,拱趴游戏... 透视工具!约局吧开挂,拱趴游戏破解器,真是真的有挂(wpk教程);1、拱趴游戏破解器系统规律教程、拱...