Hi,

I've been trying to understand the smb-processor landscape lately, and have
run
into some problems.

1) Timeout

It seems like timeout was introduced with the SmbjClientProviderService,
and
SmbUtils.java defines the withTimeout setting from the underlying smbj
library.

In SmbProperties.java, the default timeout value is set to 5 sec.

The problem is that this code is used by the older GetSmbFile and
PutSmbFile
processors as well, but the timeout configuration item is not exposed in
their
config ui.

2) Minimum File Age

The ListSmb processor supports "Minimum File Age", which is great, but the
older GetSmbFile does not.

GetSmbFile does not support incoming connections either, so you cannot use
ListSmb before GetSmbFile to select files.

3) Keep Source File

The older GetSmbFile processor has the "Keep Source File" setting for
removing
files after you get them, which is nice. However, the newer FetchSmb does
not
appear to support this.

As a result, you cannot get and delete files with a minimum age greater
than X.

4) DFS referrals

The underlying hierynomus/smbj library supports DFS referrals with the
withDfsEnabled settings. The default value for this in the library is False.

It would be very useful if this setting was exposed in all smb related
processors and services that use hierynomus/smbj.

I created https://issues.apache.org/jira/browse/NIFI-12837 for that.


I might misunderstand something here as I'm not a java coder. Tried to
patch
the DFS feature, and it started working against the cifs cluster in my
environment at least.

I also attempted to patch the timeout ui setting in PutSmbFile, and that
seemed
to resolve some of the timeout issues I was seeing with PutSmbFile as well.

But I don't know if there is some overarching plan or goal when it comes to
the
smb processors, or should I just create jira tickets for these things?


--
Anders Synstad

Reply via email to