ResourcePatternResolver不在s3中列出文件夹中的文件

问题描述 投票:0回答:1

@ Autowired私有ResourcePatternResolver resourcePatternResolver;

String s3path = req.s3Folder+"/key1/key123/*.gz";

Resource[] allTxtFilesInFolder  = resourcePatternResolver.getResources(s3path);

我正在尝试使用spring-cloud-starter-aws从s3读取文件。无论如何,当完全指定文件名并且不能与通配符一起使用时,它会很好地工作。

这是我在日志中看到的内容

INFO [main] [.i.s.PathMatchingResourcePatternResolver]:无法解析Amazon s3资源[bucket ='bucketname'和文件系统中的object ='2l6hpfhfryz8422qr8nxy8x0a2-0 / key1 / key123']:java.lang.UnsupportedOperationException:不能将Amazon S3资源解析为java.io.File对象。使用getInputStream()检索对象的内容!

为什么调用PathMatchingResourcePatternResolver而不是PathMatchingSimpleStorageResourcePatternResolver

java amazon-web-services spring-boot amazon-s3
1个回答
0
投票

经过研究,我找到了答案。我必须明确地自动将resourcePatternResolver绑定为PathMatchingSimpleStorageResourcePatternResolver

private ResourcePatternResolver resourcePatternResolver;

    @Autowired
    public void setupResolver(ApplicationContext applicationContext, AmazonS3 amazonS3){
        this.resourcePatternResolver = new PathMatchingSimpleStorageResourcePatternResolver(amazonS3, applicationContext);
    }

参考-https://cloud.spring.io/spring-cloud-static/spring-cloud-aws/2.0.0.RELEASE/multi/multi__resource_handling.html

© www.soinside.com 2019 - 2024. All rights reserved.