.. _client-send-receive-files:

################################
Envoyer ou recevoir des fichiers
################################

La commandes pour envoyer des fichiers est ``put`` pour envoyer un fichier à un
partenaire distant, et ``get`` pour récupérer un fichier à envoyer depuis le
partenaire distant.


Envoyer un fichier
==================

Pour exécuter un transfert la commande est ``put``. Les options de commandes
suivantes doivent être fournies :

- ``-c``: le chemin du fichier de configuration de Waarp Transfer
- ``-p``: le :term:`partenaire` de transfert
- ``-l``: le :term:`compte distant` utilisé pour le transfert
- ``-r``: la :term:`règle` utilisée pour le transfert
- ``-f``: le fichier à transférer

Les options de commandes suivantes sont optionnelles :

- ``-t``: la combinaison de partenaire et compte au format compte@partenaire.
  Remplace ``-p`` et ``-l`` Peut être répétée.
- ``-o``: le nom du fichier à la réception (par défaut le nom du fichier est
  inchangé)
- ``-d``: la date du transfert en format `ISO 8601
  <https://tools.ietf.org/html/rfc3339>`_ (par défaut le transfert démarre
  immédiatement)
- ``-i``: des informations supplémentaires sur le transfert (au format
  clef:valeur) format. Peut être répété
- ``-b``: la taille des blocs utilisé pour transférer le fichier (par défaut la
  taille de bloc est 64ko)
- ``--block-checksum``: active la validation de chaque bloc envoyé avec une
  somme de controle MD5
- ``--no-block-checksum``: désactive la validation de chaque bloc envoyé
- ``-H``: l'algorithme de hash utilisé pour valider l'intégrité du fichier une
  fois transféré (par défaut SHA-256 est utilisé)

.. code-block:: shell
   :caption: Exemple de commande pour envoyer un fichier

   waarp-transfer put -c transferd.ini -f 'exemple.txt' -p 'r66_server' -l 'toto' -r 'send'

Si les paramètres du transfert sont valides, le client enverra le fichier
``exemple.txt`` au partenaire ``r66_server`` avec la règle ``send`` et le
programme rendra la main à la fin de ce transfert.


Recevoir un fichier
===================

Pour exécuter un transfert la commande est ``get``. Les options de commandes
suivantes doivent être fournies :

- ``-c``: le chemin du fichier de configuration de Waarp Transfer
- ``-p``: le :term:`partenaire` de transfert
- ``-l``: le :term:`compte distant` utilisé pour le transfert
- ``-r``: la :term:`règle` utilisée pour le transfert
- ``-f``: le fichier à transférer

Les options de commandes suivantes sont optionnelles :

- ``-t``: la combinaison de partenaire et compte au format compte@partenaire.
  Remplace ``-p`` et ``-l`` Peut être répétée.
- ``-o``: le nom du fichier à la reception (par défaut le nom du fichier est
  inchangé)
- ``-d``: la date du transfert en format `ISO 8601
  <https://tools.ietf.org/html/rfc3339>`_ (par défaut le transfert démarre
  immédiatement)
- ``-i``: des informations supplémentaires sur le transfert (au format
  clef:valeur) format. Peut être répété
- ``-b``: la taille des blocs utilisé pour transférer le fichier (par défaut la
  taille de bloc est 64ko)
- ``--block-checksum``: active la validation de chaque bloc envoyé avec une
  somme de controle MD5
- ``--no-block-checksum``: désactive la validation de chaque bloc envoyé
- ``-H``: l'algorithme de hash utilisé pour valider l'intégrité du fichier une
  fois transféré (par défaut SHA-256 est utilisé)

.. code-block:: shell
   :caption: Exemple de commande pour récupérer un fichier

   waarp-transfer get -c transferd.ini -f 'exemple.txt' -p 'r66_server' -l 'toto' -r 'recv'

Si les paramètres du transfert sont valides, le client demandera le fichier
``exemple.txt`` au partenaire ``r66_server`` avec la règle ``recv`` et le
programme rendra la main à la fin de ce transfert.
