Releases: robtimus/ftp-fs
3.3
3.2
FTPFileSystemProvider
and FTPSFileSystemProvider
now allow URIs with user info and paths when creating new FTP(S) file systems. These are used for the user credentials and default directory respectively. However, if the given environment already contains user credentials the URI still cannot contain any user info, and if the given environment already contains a default directory the URI still cannot contain a path (except for a single /
, which is now always allowed).
FTPFileSystemProvider
and FTPSFileSystemProvider
now try to create a new FTP(S) file system when getPath
is called for a non-existing FTP(S) file system, using the user info of the URI for the user credentials. Any other settings cannot be provided through the URI (including the default directory). To still be able to provide these, FTPEnvironment
and FTPSEnvironment
now have method setDefault
. This can be useful for providing pool configurations, timeouts, etc. URIs can also contain query parameters to provide URI-specific settings; see usages of QueryParam and QueryParams for the possible query parameters.
FTP paths are now normalized before being used in FTP commands. This prevents unexpected errors when used with relative paths or an empty path.
FTPEnvironment
and FTPSEnvironment
now use a default 30 second connect timeout. This should prevent infinite waiting if connections cannot be established.
FTPEnvironment.copy
and FTPSEnvironment.copy
no longer fail when called with a null
map but instead return an empty environment.
3.1.1
FileSystemProvider.getFileAttributeView
ignored the link options. This is now fixed.
FileStore.supportsFileAttributeView
now correctly returns true for FileOwnerAttributeView.class
.
Keys in maps returned by FileSystemProvider.readAttribute
were incorrectly prefixed with the view name, e.g. basic:size
instead of size
. This is no longer the case. However, the old behaviour can be turned back on by setting system property com.github.robtimus.filesystems.ftp.prefixAttributes
to true.
3.1
Updated to latest version of Apache Commons Net which solves CVE-2021-37533.
FTPEnvironment
and FTPSEnvironment
have been changed to match new changes in Apache Commons Net's FTPClient
:
- Added method
withIpAddressFromPasvResponse
. - Deprecated methods
withDataTimeout
,withControlKeepAliveTimeout
andwithControlKeepAliveReplyTimeout
that take a timeout in milliseconds in favour of new overloads that take ajava.time.Duration
.
3.0.1
3.0
- Replaced methods
withClientConnectionCount
andwithClientConnectionWaitTimeout
ofFTPEnvironment
andFTPSEnvironment
with new methodwithPoolConfig
. This provides more control over the pool of connections, including an initial size that's smaller than the maximum size. FTPEnvironment
andFTPSEnvironment
no longer implementCloneable
. Instead of usingclone
, use new static methodscopy
.- Removed the deprecated
withStrictlyMultilineParsing
method ofFTPEnvironment
andFTPSEnvironment
.
2.2.2
2.2.1
Updated to latest versions of Apache Commons Net and fs-core.