====== File Transfers ======
The Synchronet file transfer section is used to facilitate transferring (sending or receiving) of
files between the BBS and remote users. Historically, these file transfers took place using legacy "modem" file transfer protocols such as XMODEM, YMODEM, and ZMODEM (which are still supported today in the Synchronet [[server:terminal]] server and many, but not all, modern [[resource:term|terminal programs]]). However files may also be transferred via Internet TCP/IP file transfer protocols, e.g. [[service:Gopher]], [[server:FTP]](S), [[server:terminal|SFTP]], [[server:web|HTTP(S)]], [[module:BinkIT|BinkP(S)]] and [[server:Mail|E-Mail]].

  * For more details on creating, modifying or removing file areas, see [[File Areas]].
  * For more details on the global configuration settings related to file transfers, see [[File Options]].

===== Transfer Protocols =====

Transfer protocols (Xmodem, Ymodem, Zmodem, etc.) for the [[server:terminal|terminal server]] are configured in [[util:scfg|SCFG]] → File Options → Transfer Protocols. Each protocol is a separate entry with its own command-line drivers for the supported transfer modes.

A default Synchronet install ships with [[util:sexyz|SEXYZ]] as the protocol driver for X/Y/Zmodem. Sysops generally do not need to modify these entries.

When a protocol is added or removed, the protocol menus in ''[[dir:text]]/menu/'' (''ULPROT'', ''DLPROT'', ''BATUPROT'', ''BATDPROT'', and ''BIPROT'') should be updated to match.

==== Per-Protocol Options ====

Each protocol entry has the following fields:

^ Option Name                ^ Description ^
| Mnemonic (Command Key)     | Single character used as the protocol's hot-key in the protocol-selection menus. |
| Protocol Name              | Display name shown to users in the protocol menus. |
| Upload Command Line        | Command line to invoke for a single-file upload. ''%f'' expands to the destination filename. |
| Download Command Line      | Command line to invoke for a single-file download. ''%f'' expands to the source filename. |
| Batch Upload Command Line  | Command line to invoke when receiving a batch (multiple files in one session). Leave blank if the protocol does not support batch uploads. |
| Batch Download Command Line | Command line to invoke when sending a batch. Leave blank if not supported. |
| Bi-Directional             | Command line for protocols that send and receive simultaneously (e.g. HS/Link). Leave blank for unidirectional protocols. |
| DSZLOG Support             | If ''Yes'', Synchronet uses the [[config:env|''DSZLOG'']] file written by the protocol driver to determine which files transferred successfully. |
| Native Executable          | ''Yes'' if the command is a native (non-DOS) executable; ''No'' for DOS programs (which require a DOS emulator on *nix). |
| Access Requirements        | An [[access:requirements|ARS]] expression — only users matching the requirements may use this protocol. |

See [[config:cmdline|Command Lines]] for the full list of specifiers usable in command lines.

===== See Also =====
  * [[:config:|config index]]
  * [[:util:SEXYZ]]
  * [[ref:xmodem|Xmodem]] / [[ref:ymodem|Ymodem]] / [[ref:zmodem|Zmodem]]
  * [[server:ftp|FTP Server]]
  * [[module:binkit|BinkIT]] (BinkP file transport for FidoNet)

{{tag>files transfer protocols}}
