Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

technique:sftp [2019/11/30 08:50] (Version actuelle)
qduchemi créée
Ligne 1: Ligne 1:
 +## Utiliser le serveur SFTP de Picasoft
  
 +Un serveur SFTP tourne sur `pica02` et vise principalement à faciliter l'​upload des artifacts et autres fichiers générés (par exemple par le [Graph Bot](https://​gitlab.utc.fr/​picasoft/​projets/​graph-bot)).
 +
 +L'​ensemble des fichiers téléversés sont ensuite accessibles via un serveur web public, consultable à l'​adresse https://​uploads.picasoft.net ; il faut connaître l'URL exacte pour accéder aux fichiers, l'​`autoindex` n'​étant pas activé.
 +
 +On accède au SFTP avec les paramètres suivants : 
 +
 +* URL : picasoft.net
 +* Port : 2222
 +* Identifiants : voir le [dépôt des identifiants](https://​gitlab.utc.fr/​picasoft/​projets/​graph-bot) : `Asso/​SFTP/​picasoft.net`.
 +
 +Le chemin autorisé en écriture est `~/​uploads`. Vous pouvez créer n'​importe quel sous-dossier et téléverser vos fichiers.
 +
 +Une fois le fichier uploadé, il est accessible sur le serveur web d'​upload en supprimant le préfixe `uploads` du chemin.
 +Exemple :
 +
 +* Vous uploadez un fichier `a.txt` dans `~/​uploads/​test` via SFTP,
 +* Le fichier est accessible à `uploads.picasoft.net/​test/​a.txt`.
 +
 +Voici un snippet Python permettant d'​automatiser l'​upload :
 +
 +```python
 +import paramiko
 +
 +# On suppose les variables hostname, port, login, password, base_path, et files connues
 +transport = paramiko.Transport((hostname,​ port))
 +transport.connect(None,​ login, password)
 +try:
 +    client = paramiko.SFTPClient.from_transport(transport)
 +except Exception as e:
 +    print("​Error creating SFTP client : {}"​.format(e))
 +
 +try:
 +    client.listdir(base_path)
 +    print("​Folder already existing, skipping creation..."​)
 +except FileNotFoundError:​
 +    client.mkdir(base_path)
 +   
 +for f in files:
 +    filename = os.path.basename(f)
 +    try:
 +        client.put(f,​ '​{}/​{}'​.format(base_path,​ filename))
 +        print("​File {} successfully uploaded!"​.format(filename))
 +    except Exception as e:
 +        print('​Error uploading file {0} : {1}'​.format(f,​ e))
 +```
  • technique/sftp.txt
  • Dernière modification: 2019/11/30 08:50
  • par qduchemi