我有dsl路线:
from(String.format("sftp://%s@%s:%d/%s?password=%s&delete=true&readLock=changed&delay=%s",
systemSettingsService.getSystemSettings().getSftpUserName(),
systemSettingsService.getSystemSettings().getSftpHost(),
systemSettingsService.getSystemSettings().getSftpPort(),
systemSettingsService.getSystemSettings().getSftpSourcePathDestWorking(),
systemSettingsService.getSystemSettings().getSftpPassword(),
systemSettingsService.getSystemSettings().getSftpPollPeriod())).streamCaching()
.process(...
我想限制使用的文件大小。例如,我想忽略大小超过100Mb的文件。可选地,如果camel遇到超过100mb的文件,我想要回调。
我读过:
http://camel.apache.org/ftp2.html
但我找不到任何相关的内容
答案 0 :(得分:3)
您可以考虑使用filter
。
from(String.format("sftp://%s@%s:%d/%s?filter=#myFilter",...
创建一个实现GenericFileFilter接口的自定义bean
import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.file.GenericFileFilter;
public class MyFileFilter<T> implements GenericFileFilter<T> {
@Override
public boolean accept(GenericFile<T> file) {
// I'm guessing the return value will be in bytes
if (file.getFileLength() < (100 * 1024 * 1024))
return true;
return false;
}
}
阅读更多相关信息here.值得记住的是,FTP和SFTP组件都是从文件组件继承的。