Articles and news

FTP-Client-Uploads mit temporären Namen

Sat 27 July 2019 | ftp client-side blog

A drawer with file tabs.

Wenn Sie verwaltete Dateiübertragungen genau untersuchen, stellt sich heraus, dass die Versschiebung einer Datei auf einen entfernten FTP-Server nur eine Phase in einer Reihe von miteinander verbundenen Prozessen ist.

Sobald die Datei auf dem FTPS-Server eintrifft, wird sie gelesen und weiter verarbeitet. Der nächste Schritt kann das Herunterladen oder das Kopieren der Datei in einem anderen Bearbeitungsbereich umfassen.

Wenn Sie eine große Datei hochladen und sie vor Abschluss der Übertragung kopieren oder ziehen, können dabei die Dateidaten beschädigen werden. Beispielsweise kann ein Pull-Vorgang vor dem vollständigen Hochladen der Datei gestartet werden, wobei nur ein Teil der Originaldatei zum Herunterladen zur Verfügung steht.

Ein weiterer häufiger Fall, in dem Daten beschädigt werden können, ist wenn, aufgrund von Verbindungsfehlern während der Übertragung, ein unvollständiger Upload erfolgt. Ein Client beginnt eine Datei an den Server zu senden, aber ab einem Punkt geht die Verbindung verloren. Möglicherweise wurde die Client-VM unerwartet ausgeschaltet oder das Netzwerk war zu lange vorübergehend nicht verfügbar. Dies führt dazu, dass eine Teildatei auf dem Server verbleibt,die versehentlich von der nächsten Phase in unserem Prozess verarbeitet werden kann.

Dies ist ein ernstes Problem bei FTP- und FTPS-Verbindungen. FTP-Protokolle schreiben nicht vor, dass die gesamte Dateigröße vor dem Hochladen gesendet werden muss. Darüber hinaus verwenden sie keine explizite End-of-File-Markierung. Ein FTP-Client signalisiert den Abschluss eines Uploads, einfach indem er die Datenverbindung schließt.

Um dieses Problem zu beheben, kann ein Dateisperrmechanismus implementiert werden, indem man Dateien unter Verwendung temporärer Namen holädt und anschließend in ihre anfänglichen Namen umbenennt, sobald alle Daten vom Client gepusht wurden.

Clients wie WinSCP verwenden temporäre Namen, die durch das Anhängen einer nicht konfigurierbare Erweiterung .filepart an die anfänglichen Dateinamen gebildet werden.

In SFTPPlus können Sie eine Dateiübertragung so konfigurieren, dass jedwelche Suffixe / Erweiterungen während des Uploasds verwendet werden kpönnen. Sie sind nicht auf .filepart beschränkt. . Beispielsweise können Sie die Erweiterungen ".tmp" oder ".incomplete" verwenden.

Screenshot with transfer destination in SFTPPlus.

Durch die Verwendung temporärer Namen können Sie einen Prozess implementieren, in dem übertragene Dateien gesperrt werden, während ihr Inhalt hochgeladen wird. Der verkettete Prozess ignoriert Dateien mit temporären Namen und behandelt nur übertragene Dateien nach dem letzten Umbenennungsvorgang.

Auf den meisten Dateisystemen ist der Umbenennungsvorgang atomar und sehr schnell.

Dieselbe Technik kann verwendet werden, um eine Datei beim Hochladen in SFTP-Übertragungen zu sperren.

Das SCP-Protokoll bietet keine Umbenennungsoperation, jedoch wird die gesamte Dateigröße in der SCP-Upload-Anforderung angekündigt. Das erfolgt, bevor der Client das Pushen des Inhalts der Datei auslöst.

Weitere Informationen zum Übertragen von Dateien mit temporären Namen finden Sie auf unserer documentation page.

SFTPPlus MFT bewerten

Die in diesem Artikel aufgeführten Funktionen sind nur einige ausgewählte Funktionen aus vielen heute verfügbaren Integrations- und Konfigurationsoptionen. Sprechen Sie mit dem Support-Team über Ihre Anforderungen an die Datenaustausch-Software.

SFTPPlus MFT Server unterstützt FTP, Explizites FTPS, Implizites FTPS, SFTP, SCP, HTTP und HTTPS.

SFTPPlus MFT ist als On-Premise-Lösung erhältlich, die auf Windows, Linux und macOS unterstützt wird.

Es ist auch in der Cloud als Docker-Container, AWS- oder Azure-Instanzen und viele andere Cloud-Anbieter verfügbar.

Fordern Sie mit dem unten stehenden Formular eine Testversion an.

• • •

SFTPPlus Release 3.50.0

Tue 23 July 2019 | general release

We are announcing the latest release of SFTPPlus version 3.50.0.

New Features

  • The embedded Let's Encrypt client now has the option to debug the HTTP ACME protocol. [#5287]
  • It is now possible to install multiple SFTPPlus instances on the same Windows operating system, all operating and active at the same time. [#5291]

Defect Fixes

  • The embedded Let's Encrypt client can now successfully request certificates. A defect was introduced in 3.48.0, which was preventing requesting new certificates. [lets-encrypt] [#5287]

You can check the full release notes here.

• • •

SFTPPlus Release 3.49.0

Mon 24 June 2019 | general release

We are announcing the latest release of SFTPPlus version 3.49.0.

New Features

  • You can now use PXF / PKCS#12 certificates in SFTPPlus without converting them to the PEM format first. [#2596]
  • The HTTP file transfer server web UI now has dedicated ID for each UI element making it easier to implement themes. [web-server][http][https] [#3224]

Defect Fixes

  • Documentation for the group's ssh_authorized_keys_path configuration option was updated to specify that reading multiple SSH keys from a single file is not supported. This implementation change was done in version 2.6.0, but the documentation was not updated until now. [server-side] [#1296]
  • FTP client transfers no longer create empty files on transfer failures. [client-side][ftp][ftps] [#3006]
  • You can now create new SFTP services from the Local Manager web interface. This issue was introduced in version 3.46.0. [server-side][sftp] [#4124]
  • When using the client shell, passwords are now masked by default. [security][client-side] [#5213]
  • Local Manager's web interface now has an explicit button for disabling a password. In previous versions it was required to type disabled to disable the usage of a password. [manager] [#5236]

You can check the full release notes here.

• • •

SFTPPlus Release 3.48.0

Mon 27 May 2019 | general release

We are announcing the latest release of SFTPPlus version 3.48.0.

New Features

  • HTTP POST event handler can now be configured to automatically retry on network and HTTP errors. [server-side][http-api] [#2619]
  • It is now possible to configure a file transfer service to emit debugging events for the low-level protocol used. [http][ftp][ftps][sftp][scp][server-side] [#2697]
  • The Python Extension event handler now handles events on multiple CPUs. In previous versions all events were handled by a single CPU. [#5262]
  • A new destination path action named single-file was added to transfer multiple source files as a single destination file. [client-side] [#4054]
  • You can now disable the overwriting rule for a transfer destination. In this way, the file is uploaded right away, without doing any extra requests on the server. [client-side] [#4054]
  • Debian 9 is now a supported platform. [#3353]

Defect Fixes

  • When changing the current folder in FTP, the SFTPPlus server now only checks that the path is a folder and that path traversal is allowed. It no longer tries to see if the operating system allows listing content. Asking the operating system to list content for every target directory could have caused performance issues. [server-side][ftp][ftps] [#2111]
  • You can now use a local directory with a large number of files (more than 10.000), as the source for a transfer. [client-side] [#1319]
  • The local filesystem source location no longer stops to monitor the source on I/O errors. It will log an error and retry to get the content again after changes_poll_interval seconds. [client-side] [#3350]
  • The SysV and OpenRC init scripts now work when executed as root user. This was a defect introduced in 3.42.0. [#3353]

Deprecations and Removals

  • The Python Extension event handler no longer takes a parent argument. The events are no longer handled in separate threads. Instead, they are added to a queue to be executed on a dedicate CPU. [#5262]
  • Support for Ubuntu 16.04 on ARM64 was removed. [#3353]
  • Support for Debian 8 was removed. [#3353]

You can check the full release notes here.

• • •

SFTPPlus Release 3.47.0

Thu 11 April 2019 | general release

We are announcing the latest release of SFTPPlus version 3.47.0.

New Features

  • You can now configure multiple domains for a free Let's Encrypt certificate using the subjectAlternativeName field. [server-side][ftps][https] [#5108]
  • A new event handler of type external-executable was added to execute external scripts or programs. [#5234]
  • Windows Server 2019 is now a supported platform. [#5241-1]
  • The bundled OpenSSL libraries in Windows, SLES 11, and OS X were updated to versions 1.1.1b, adding support for TLS 1.3. [#5241]

Defect Fixes

  • The WebDAV location now ignores HTTP proxy errors when they occur while monitoring a remote SharePoint Online site. [client-side][https] [#5114-1]
  • The WebDAV location now works with multiple parallel transfers from the same SharePoint Online source. [client-side][https] [#5114]
  • The SFTP and SCP file transfer services will no longer block the whole SFTPPlus process during the SSH handshake. [server-side][sftp][scp] [#5202]

Deprecations and Removals

  • Event with ID 20057, emitted when execute_at_startup times out, was removed and replaced by event with ID 20056. [#5234]

You can check the full release notes here.

• • •