簡體   English   中英

ResourcePatternResolver 未列出 s3 中文件夾中的文件

[英]ResourcePatternResolver Not listing files from a folder in s3

@Autowired
private ResourcePatternResolver resourcePatternResolver;

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

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

我正在嘗試使用 spring-cloud-starter-aws 從 s3 讀取文件。 無論如何,當完全指定文件名並且不適用於通配符時,它運行良好。

這是我在日志中看到的

信息 [main] [.isPathMatchingResourcePatternResolver]:無法解析文件系統中的 Amazon s3 資源 [bucket='bucketname' and object='2l6hpfhfryz8422qr8nxy8x0a2-0/key1/key123']:java.lang.UnsupportedOperationException:Amazon S3 資源不能被解析為 java.io.File 對象。使用 getInputStream() 來檢索對象的內容!

為什么調用PathMatchingResourcePatternResolver而不是PathMatchingSimpleStorageResourcePatternResolver

經過研究,我找到了答案。 我必須明確自動裝配 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM