Differences

This shows you the differences between the selected revisions of the page.

protocols 2017-09-05 protocols 2023-12-06 (current)
Line 1: Line 1:
====== Supported File Transfer Protocols ====== ====== Supported File Transfer Protocols ======
-WinSCP supports four transfer protocols:+WinSCP supports five transfer protocols:
  * [[sftp|SFTP]] (SSH File Transfer Protocol);   * [[sftp|SFTP]] (SSH File Transfer Protocol);
  * [[ftp|FTP]] (File Transfer Protocol);   * [[ftp|FTP]] (File Transfer Protocol);
  * [[scp|SCP]] (Secure Copy Protocol);   * [[scp|SCP]] (Secure Copy Protocol);
-  * [[webdav|WebDAV]] (Web Distributed Authoring and Versioning).+  * [[webdav|WebDAV]] (Web Distributed Authoring and Versioning); 
 +  * [[s3|S3]] (Amazon S3).
Some servers support more than one of these protocols. This document contains a comparison to help you to decide which is most appropriate for your needs. The comparison describes both features that are characteristic to the specific protocol as-is, and features that are caused by the implementation of the protocol in WinSCP. Some servers support more than one of these protocols. This document contains a comparison to help you to decide which is most appropriate for your needs. The comparison describes both features that are characteristic to the specific protocol as-is, and features that are caused by the implementation of the protocol in WinSCP.
Line 23: Line 24:
^ Directory operations | Recursive operations with directories (deletion, permissions change) must be performed separately for each file. Thus operations can take a long time, especially for directories with a large number of files. ||| Recursive operations with directories (deletion, permissions change), can be done with a single command (''rm'', ''chmod'', etc). Thus they are quick. On the other hand it limits some functionality. | ^ Directory operations | Recursive operations with directories (deletion, permissions change) must be performed separately for each file. Thus operations can take a long time, especially for directories with a large number of files. ||| Recursive operations with directories (deletion, permissions change), can be done with a single command (''rm'', ''chmod'', etc). Thus they are quick. On the other hand it limits some functionality. |
^ [[task_rename|File renaming]] and [[task_move_duplicate#move|moving]] | Supported since SFTP-2. | Supported. | Supported. | Supported (''mv''). | ^ [[task_rename|File renaming]] and [[task_move_duplicate#move|moving]] | Supported since SFTP-2. | Supported. | Supported. | Supported (''mv''). |
-^ Direct [[task_move_duplicate#duplicate|File duplication]] | Unsupported by most %%SFTP%% servers. The server has to support %%SFTP%% extension ''copy-file'' (supported by ProFTPD/mod_sftp for example). WinSCP can open a [[shell_session|separate shell session]] to duplicate the file instead. | Unsupported. | Supported. | Supported (''cp''). | +^ ==?duplicate== Direct [[task_move_duplicate#duplicate|File duplication]] | The server has to support %%SFTP%% extension ''copy-file'' (supported by [[http://www.proftpd.org/docs/contrib/mod_sftp.html|ProFTPD ''mod_sftp'']] for example) or ''copy-data'' (supported by OpenSSH for example). WinSCP can open a [[shell_session|separate shell session]] to duplicate the file instead. | WinSCP supports [[http://www.proftpd.org/docs/contrib/mod_copy.html|ProFTPD ''mod_copy'']] commands ''SITE CPFR''/''CPTO''. No other %%FTP%% server supporting file duplication is known. | Supported. | Supported (''cp''). | 
-^ [[remote_command|Execution of arbitrary command]] | Unsupported by the protocol. WinSCP can open a [[shell_session|separate shell session]] to execute the command. | Unsupported. WinSCP allows user to execute arbitrary protocol command. | Unsupported. | Supported as long as the command does not require user input. |+^ ==?command== [[remote_command|Execution of arbitrary command]] | Unsupported by the protocol. WinSCP can open a [[shell_session|separate shell session]] to execute the command. | Unsupported. WinSCP allows user to execute arbitrary protocol command. | Unsupported. | Supported as long as the command does not require user input. |
^ [[ui_transfer_custom#upload|Setting properties (time-stamp, permissions) of uploaded files]] | Supported. | Server needs to support ''MFMT'' extension. | Only few servers support setting time-stamp. | Supported. | ^ [[ui_transfer_custom#upload|Setting properties (time-stamp, permissions) of uploaded files]] | Supported. | Server needs to support ''MFMT'' extension. | Only few servers support setting time-stamp. | Supported. |
^ [[task_properties|Owner or group change]] | In SFTP-2 and SFTP-3, the owner and group can be changed only with knowledge of UID/GID. Since SFTP-4 even change using user or group name is allowed. | Supported (''MFF''). Unsupported by WinSCP. | Unsupported. | Supported (''chown'', ''chgrp''). | ^ [[task_properties|Owner or group change]] | In SFTP-2 and SFTP-3, the owner and group can be changed only with knowledge of UID/GID. Since SFTP-4 even change using user or group name is allowed. | Supported (''MFF''). Unsupported by WinSCP. | Unsupported. | Supported (''chown'', ''chgrp''). |
-^ [[ui_properties#checksum|Checksum calculation]] | Supported, if the server supports respective SFTP protocol extension. | Supported (''HASH'', ''XSHA1'', ''XSHA256'', ''XSHA512'', ''MD5'', ''XMD5'', ''XCRC''). | Unsupported. | Unsupported. |  +^ ==?checksum== [[ui_properties#checksum|Checksum calculation]] | Supported, if the server supports respective SFTP protocol extension or when WinSCP can use a [[shell_session|separate shell session]] to calculate the checksum using shell commands. | Supported (''HASH'', ''XSHA1'', ''XSHA256'', ''XSHA512'', ''MD5'', ''XMD5'', ''XCRC''). | Unsupported. | Unsupported. |  
-^ [[ui_fsinfo#space|Checking disk usage]] | Supported, if the server supports respective SFTP protocol extension (SFTP-5 or proprietary OpenSSH extension ''statvfs@openssh.com''). | Supported (''AVBL'', ''XQUOTA''). Only new servers support it. | Only some servers support it. | Unsupported. Pre-defined [[custom_command|custom command]] //Disk Space Usage// (''df'') can be used as an alternative. | +^ ==?disk_usage== [[ui_fsinfo#space|Checking disk usage]] | Supported, if the server supports respective SFTP protocol extension (SFTP-5 or proprietary OpenSSH extension ''statvfs@openssh.com''). | Supported (''AVBL'', ''XQUOTA''). Only new servers support it. | Only some servers support it. | Unsupported. Pre-defined [[custom_command|custom command]] //Disk Space Usage// (''df'') can be used as an alternative. | 
-^ [[task_link|Link creation]] | It is possible to create and edit symbolic links since SFTP-3. It is possible to create hard links, if the server supports respective SFTP protocol functionality (SFTP-6 or proprietary OpenSSH extension ''hardlink@openssh.com''). | Unsupported. | Unsupported. | It is possible to create both symbolic and hard links (''ln''). Symbolic links can be edited also. |+^ ==?link== [[task_link|Link creation]] | It is possible to create and edit symbolic links since SFTP-3. It is possible to create hard links, if the server supports respective SFTP protocol functionality (SFTP-6 or proprietary OpenSSH extension ''hardlink@openssh.com''). | WinSCP supports [[http://www.proftpd.org/docs/contrib/mod_site_misc.html|ProFTPD ''mod_site_misc'']] command ''SITE SYMLINK''. No other FTP server supporting link creation is known. | Unsupported. | It is possible to create both symbolic and hard links (''ln''). Symbolic links can be edited also. |
^ User group list lookup | Unsupported. | Unsupported. | Unsupported. | Supported (''groups''). | ^ User group list lookup | Unsupported. | Unsupported. | Unsupported. | Supported (''groups''). |
^ Influence of environment variables | Generally unaffected by environment variables. ||| As WinSCP uses shell, it is influenced by environment variables (date format, etc.). WinSCP requires the English environment. See [[requirements]]. | ^ Influence of environment variables | Generally unaffected by environment variables. ||| As WinSCP uses shell, it is influenced by environment variables (date format, etc.). WinSCP requires the English environment. See [[requirements]]. |
^ Time zone and DST issues with [[timestamp|file time-stamps]] | Theoretically no issues, as the protocol requires timestamps to be in UTC. Practically some of the SFTP servers have problems with DST. | Theoretically no issues, when the server supports ''MLSD'' command, as the comment requires timestamps to be in UTC. Practically some of the FTP servers have problems with DST. When the server supports ''LIST'' command only, behavior is undefined and time zone offset may need to be configured. | Theoretically no issues. | Some shell commands are influenced by daylight-saving time. For example, the ''ls'' command can return a different time than ''scp''. Thus, after transfer, the time-stamp of the file can be different. Also there can be an additional difference caused by the server time zone offset. This causes trouble when comparing directories and [[task_synchronize|synchronization]]. | ^ Time zone and DST issues with [[timestamp|file time-stamps]] | Theoretically no issues, as the protocol requires timestamps to be in UTC. Practically some of the SFTP servers have problems with DST. | Theoretically no issues, when the server supports ''MLSD'' command, as the comment requires timestamps to be in UTC. Practically some of the FTP servers have problems with DST. When the server supports ''LIST'' command only, behavior is undefined and time zone offset may need to be configured. | Theoretically no issues. | Some shell commands are influenced by daylight-saving time. For example, the ''ls'' command can return a different time than ''scp''. Thus, after transfer, the time-stamp of the file can be different. Also there can be an additional difference caused by the server time zone offset. This causes trouble when comparing directories and [[task_synchronize|synchronization]]. |
^ [[ui_login|Configuration]] | Generally, only login information is needed. ||| For a successful connection to a server it is often necessary to properly set up several configuration options on the //[[ui_login_scp|SCP/Shell page]]// of Advanced Site Settings dialog. | ^ [[ui_login|Configuration]] | Generally, only login information is needed. ||| For a successful connection to a server it is often necessary to properly set up several configuration options on the //[[ui_login_scp|SCP/Shell page]]// of Advanced Site Settings dialog. |

Last modified: by martin