Skip to content

Releases: robtimus/ftp-fs

3.3

06 Oct 13:46
Compare
Choose a tag to compare

Updated to latest version of Apache Commons Net. Added constant DEFLATE to enum FileTransferMode to match constant FTP.DEFLATE_TRANSFER_MODE.

3.2

11 Dec 19:19
Compare
Choose a tag to compare
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

04 Mar 13:00
Compare
Choose a tag to compare

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

04 Dec 15:02
Compare
Choose a tag to compare
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 and withControlKeepAliveReplyTimeout that take a timeout in milliseconds in favour of new overloads that take a java.time.Duration.

3.0.1

29 Oct 13:14
Compare
Choose a tag to compare

Creating FTP and FTPS file systems uses more fine-grained locking. This makes it possible to create file systems for different URLs concurrently.

3.0

26 Sep 15:54
Compare
Choose a tag to compare
3.0
  • Replaced methods withClientConnectionCount and withClientConnectionWaitTimeout of FTPEnvironment and FTPSEnvironment with new method withPoolConfig. This provides more control over the pool of connections, including an initial size that's smaller than the maximum size.
  • FTPEnvironment and FTPSEnvironment no longer implement Cloneable. Instead of using clone, use new static methods copy.
  • Removed the deprecated withStrictlyMultilineParsing method of FTPEnvironment and FTPSEnvironment.

2.2.2

30 Jul 14:31
Compare
Choose a tag to compare

Classes FTPMessages and FTPLogger now work properly on Java 11 and up. Older versions would trigger an UnsupportedOperationException due to the use of a custom ResourceBundle.Control.

2.2.1

31 Jul 13:38
Compare
Choose a tag to compare

Updated to latest versions of Apache Commons Net and fs-core.

2.2

23 Nov 20:50
Compare
Choose a tag to compare
2.2

Added support for setting the data channel protection level for FTPS file systems.

Input and output streams are now always finalized upon closing to prevent pool starvation.

2.1.2

12 Nov 17:11
Compare
Choose a tag to compare

FTPFileSystemProvider now returns false instead of throwing a ClassCastException if the second argument to isSameFile is not an FTP path.