Directory Opus 13.25.1 (Beta) - how to try the new SFTP code

:warning: This is a beta release. It may be unstable. Some text may not be translated yet. Use at your own risk!

:inbox_tray: Download manually, or use Help > Check for Program Updates (if beta versions are enabled in Preferences / Internet / Updates).


New SFTP code now available to try

The replacement SFTP support is now available for testing. This is currently off by default, and can be turned on by setting Preferences / Miscellaneous / Advanced: [FTP] ftp_legacy_sftp to False, and restarting Opus.

For the time being, please only turn this on if you want to help us beta-test the new code. There is also a new ftp_copy_buffer_size_sftp setting in the same place for tweaking copy buffer sizes when using the new SFTP code.

See the next post for more details about the new SFTP code.

Preferences

  • Added options under Preferences / Folder Tree / Contents / This PC to hide specific drives from the folder tree.

Folder Formats

  • Tile size (for the Tiles display mode) can now be configured through the Folder Formats system, letting you have different tile sizes on a per-folder basis.
  • You can now specify width and height separately for thumbnail size via the Folder Formats system (previously thumbnail sizes overridden by Folder Formats would always be square).

Commands

  • Added Prefs SCRIPTUNINSTALL command. Lets you delete an installed script, triggering its OnDeleteScript method if it has one. Specify the name of the script file on disk as the value of the SCRIPTUNINSTALL argument.
  • Added Prefs SKIPINUSE argument. When the configuration backup tool is launched with SKIPINUSE specified on the command line, it will skip over any files in the User Data folder that are in use and can't be opened.
  • Opus functions now support multi-line comment blocks using /* ... */ (as well as single-line comments using //). As with // the /* code must appear at the beginning of a line.

Evaluator

  • The evaluator now supports functions. Functions are defined similar to javascript (e.g. function name(a, b) { ... }). Variable scoping is also similar to javascript - functions can access variables defined outside them, but variables defined inside them don't leak to the outer scope.

Scripting

  • Added FSUtil.HMAC script method. Use as e.g. FSUtil.HMAC(key, message, type). Key and message are Blob objects, type is a string specifying the hash algorithm (e.g. "sha256"). Returns the HMAC as a Blob.

Other changes

  • Resizing thumbnails with Ctrl+Mouse Wheel now preserves their current aspect ratio rather than resetting them to 1:1.
  • Added an option to the Script Editor options dialog to expand the Include files branch by default in the editor.
  • Set AUTOSIZECOLUMNS=col:xyz,override now turns off the specified column's fill/collapse modes and max width.
  • Main window titles now include a warning when Redirection Guard is on.
  • The File Types "Edit Action" dialog is now resizable horizontally even when it's in a mode that can't be resized vertically
  • "Rename" from the context menu for FTP/SFTP files now does an inline rename instead of opening the Advanced Rename dialog.
  • Improved logging for FTPS SSL connection failures.
  • Dragging from the FTP Address Book, or using the Create Shortcut option in its context menus, now creates an Opus button (.dcf file) which runs a command to go to that Address Book entry. (Previously, it would create a .url file which wasn't very useful for SFTP or non-anonymous FTP.)
  • Blocked drag & drop of URLs on to the Favorites Bar from creating favorites (since they don't work). You can however still drop a URL on the button for a favorite directory to create a shortcut on disk inside that dir.
  • Adjusted our Properties dialog hook to make the Catalogue Signatures list (normally only visible for Microsoft binaries) DPI scale its column widths, since doing some multiplications is apparently still too complex for Microsoft to do themselves.

Fixes

  • Improvement to shift/ctrl/alt key detection in Replace dialog.
  • Prints from the Text plugin now always use black text on a white background, instead of the configured on-screen colors.
  • Fixed evaluator groups not applying to certain columns (e.g. Date Taken).
  • Fixed sharing a script to an existing file merging rather than replacing.
  • Fix for context menu items in submenus added in a particular way in the registry not working when selected.
  • Fixed regression in 13.25 with Rename REGEXP with an empty "from" pattern (not explicitly supported, but did used to work and does again).
  • Fixed Favorites ALIAS=list,builtin generating an empty list.
  • The Print Folder tool no longer shows the uncompressed size of archives when the option to calculate sub-folder sizes is turned on.
  • Fixed the FTP file/folder Properties dialog's Download button making you type the filename yourself instead of filling it in by default.
  • Fixed the FTP > Site Properties dialog switching to "ask for password" mode when standalone (not opened via the FTP Address Book).
  • Fixed evaluator not allowing an unnamed map to be passed as a function argument.
  • Fix/workaround for Windows 11 blocking Opus from accessing junctions, depending on the process which started it. This should fix error 448 when using OneDrive Personal Vault.
  • Possible fix for crash ID 789.
  • Possible fix for crash ID 792.
  • Fix for crash ID 797.
14 Likes

Details about the new SFTP support

  • This update includes our new SFTP code, re-written from the ground up.
  • From 13.25.4 beta, the new SFTP code is enabled by default.
  • If needed, you can switch back to the old code via Preferences / Miscellaneous / Advanced: [FTP] ftp_legacy_sftp

Main features of the new SFTP code, when enabled:

  • Support for newer encryption protocols.
  • Faster file transfers (may require buffer size tuning, although the default seem good for most people).
  • Process isolation (smaller attack surface; protects main process from crashes).
    If using an outgoing firewall, you may need to allow dopusnet.exe through.
  • Connections can be monitored in Opus's Task Manager.
  • The location bar now shows an "SFTP" prefix when on SFTP sites (rather than "FTP" for both types).
  • (Once Opus 13.25.5 is released) PuTTY V3 keys are supported.

When reporting SFTP issues:

  • Please turn on the FTP log (from the main menus, FTP > Display FTP Logs)
  • The details there may be relevant, including the actions leading up to the problem.
  • When posting details from your logs, please anonymize any internet addresses, (user)names, paths, and so as appropriate for your privacy and a public audience.

Limitations and known issues:

  • Existing Address Book entries will work without modification. However, there is not yet support for:
    • IPv6
    • Hiding .dotfiles
    • Sounds
    • Speed limits
    • Proxies
  • Changes to Address Book entries won't always affect existing connections without a restart.
  • Buffer size for most file transfers is configured via ftp_copy_buffer_size_sftp in Preferences. (See manual for detailed description. Note that it does not affect existing connections.)
  • Public / private key authentication is supported, except:
    • PuTTY's Pageant isn't currently supported. (Specify the key file directly instead.)
    • Ed25519 keys don't currently work. (Didn't with the old code, but we hope to add support for them.)
  • Not all features of the multi-line Create Folder dialog work yet (e.g. making multiple directory levels at once).
  • When things fail, error codes are usually generic at the moment (but you can open the FTP Log panel for detailed information).
  • SymLinks should work, but are not currently displayed in bold, and the Target column is not populated.
  • Transfer Time column not currently populated.
  • Linux attributes/permissions are not currently shown or editable.
12 Likes