java - Spring Batch PathMatchingResourcePatternResolver.getResources() 不适用于 https url
问题描述
我正在尝试读取“https://raw.githubusercontent.com/Shrutika09/SpringBatchTemplateUploaderPOC/main/order-data-*.csv”上存在的多个 csv 文件,并使用 Spring Batch 将其并行插入数据库。
当我将 URL 用于单个 csv 文件(https://raw.githubusercontent.com/Shrutika09/SpringBatchTemplateUploaderPOC/main/order-data-1.csv)时,所有记录都被读取并插入到数据库中。但是,当我尝试读取具有特定命名模式(https://raw.githubusercontent.com/Shrutika09/SpringBatchTemplateUploaderPOC/main/order-data-*.csv)的所有文件时,它无法识别该文件,因此不会t 按预期工作。
有什么方法可以让我们从 github 位置读取与特定命名模式匹配的所有文件。
我正在使用 Spring Batch Partitioner
Partitioner:
@Bean
public Partitioner partitioner() throws Exception {
System.out.println("In Partitioner");
MultiResourcePartitioner partitioner = new MultiResourcePartitioner();
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
partitioner.setResources(resolver.getResources("https://raw.githubusercontent.com/Shrutika09/SpringBatchTemplateUploaderPOC/main/order-data-*.csv"));
partitioner.partition(5);
return partitioner;
}
Reader:
@Bean
@StepScope
public FlatFileItemReader<Orders> reader(@Value("#{stepExecutionContext['fileName']}") String path)
throws MalformedURLException {
System.out.println("In Reader");
System.out.println("In Reader" +path);
FlatFileItemReader<Orders> reader = new FlatFileItemReader<Orders>();
reader.setResource(new UrlResource(path));
reader.setLineMapper(new DefaultLineMapper<Orders>() {
{
setLineTokenizer(new DelimitedLineTokenizer() {
{
setNames(new String[] { "id", "firstName", "lastName" });
}
});
setFieldSetMapper(new BeanWrapperFieldSetMapper<Orders>() {
{
setTargetType(Orders.class);
}
});
}
});
return reader;
}
解决方案
推荐阅读
- c# - C#.Net saxon9he-api(版本 9.6.0.7)为大型 XML 文件(> 4GB)抛出内存不足异常
- python - 如何使用 fastpages 在 ipynb 文件中部署面板应用程序?
- python - Python - 动态查找来自不同列的值
- javascript - 在控制台中从 edge://downloads/all 获取下载数据
- flutter - 如何使这个下拉按钮小部件可重用?
- python - 不转发超过 1 个月的日历电报
- macos - 如何以编程方式将特定应用程序移动到特定显示器
- javascript - 上下文中不正确的对象“this”
- ios - How to change time and battery color on iOS with flutter no AppBar
- swift - How to save images in ascending order in swift?