Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur. ## Mettre en ligne un fichier via SFTP 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 : `sftp://uploads.picasoft.net` * Port : 2222 * Identifiants : voir le [dépôt des identifiants](https://gitlab.utc.fr/picasoft/projets/graph-bot) : `Asso/SFTP/picasoft.net`. En ligne de commande: `sftp -P 2222 pica@uploads.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/tips/sftp.txtde qduchemi