1

我有 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 的文件。如果骆驼遇到的文件超过100mb,我可以选择进行回调

我读过了:

http://camel.apache.org/ftp2.html

但我找不到任何相关的东西

4

1 回答 1

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;
    }
}

在此处阅读更多相关信息值得记住的是 FTP 和 SFTP 组件继承自 File 组件。

于 2017-11-28T12:29:38.247 回答