Définir et configurer un SFTP
Vous pouvez créer un client pour vous connecter à votre serveur SFTP (Secure File Transfer Protocol) et effectuer diverses opérations sur vos fichiers. Cet article explique comment ajouter une connexion SFTP à une source de données Cloud personnalisée (CCDS) et comment inclure la connexion SFTP dans votre script. Voir Définir le chiffrement PGP pour en savoir plus sur le chiffrement et le déchiffrement de vos fichiers.
Avant de commencer
- Nouveau à CCDS? Voir Concept : présentation de CCDS et définir une source de données infonuagique personnalisée (CCDS)
- Autorisations obligatoires :Développeur d’intégrationdansAdministration > Ensemble d’autorisations
Navigation
À partir du menu de navigation, accédez à Définir et configurer un SFTP
Créer une nouvelle connexion SFTP
- Créez uneconnexion SFTPà partir du voletdans Concevoir intégrations.Identifiant
- Entrez un nom pour la connexion et cliquez surCréer.
- Entrez l’expression hôte dans le formulaire de connexion. Les connexions utilisent le port 22 si vous ne les précisez pas. Workday prend en charge les port :
- 22
- 1224
- 2222
- 5022
- 5031
- 5122
- 10022
- 20022
- Choisissez votre mode d'authentification.
- Pour l’authentification par clé privée, aucun mot de passe n’est requis.
- Pour l'authentification de base, entrez un mot de passe.
- Pour l'authentification par clé privée, envoyez la clé publique à l'administrateur du serveur client pour l'installation.
- SélectionnezTester la connexionpour la première fois.
Pour l’authentification de clé privée ou de base :
- Quand vous sélectionnezTester une connexionpour la première fois, le champEmpreinte digitalese remplit. Cela active la vérification du serveur pour les connexions futures. L'administrateur du serveur client peut vérifier l'empreinte digitaleconfirmant que vous êtes connecté au bon serveur.
- Après avoir exécutéTester la connexionpour la première fois, cliquez sur votre connexion SFTP dans le voletIdentifiantspour recharger la connexion et afficher le champ d’empreinte digitale.
- Quand vous sélectionnezTester la connexionou que vous utilisez la connexion SFTP dans un script, l’empreinte digitale du serveur doit correspondre ou la connexion échoue.
- Sélectionnez votre source de données infonuagique personnalisée
- Sélectionnez un CCDS ou créez un CCDS à partirde sources de donnéesdans Concevoir intégrations.
- Ajouter une connexion SFTP à la source de données Cloud personnalisée
- Sélectionnez l’onglet Paramètres de concepteur pour votre CCDS.
- Glissez et déposez le paramètreConnexion SFTPdansParamètres supplémentairesdans le panneauComposantes des paramètres.
- Configurez la connexion SFTP dans l’onglet Paramètres de Designer. Le nom du paramètre est l’anse que vous utiliserez dans votre script. Par exemple, ’sftpserver’.
- Ajouter la connexion SFTP à votre script
- Créez un client à l’aide de ai.sftp.createClient() et indiquez le nom de votre paramètre SFTP. Par exemple :const client = ai.sftp.createClient('mysftp').Une fois la connexion établie, un objet client est créé.
- Testez votre connexion dans le voletActionspour exécuter votre script. Vous pouvez trouver des résultats de test de votre script dansJournauxdans le voletActions.
Méthodes SFTP pour le téléversement et le téléchargement de fichiers
Utilisez les méthodes suivantes pour créer un client, téléverser et télécharger des fichiers chiffrés sur un serveur SFTP, puis les chiffrer ou les déchiffrer avec PGP. Voir ai.SFTP.
- createClient(sftpConnection)client = ai.sftp.createClient('mysftp');
- téléverserFile(Writer, téléverséFileName)client.uploadFile(writer,'./archive/datasample.csv.asc');
- downloadFile(filename)client.downloadFile('./archive/datasample.csv.asc');
- Déconnecter le clientclient.disconnect();
- Libérez les ressources système utilisées par l’objet lecteur de fichier.reader.cleanUp();
Exemple pour connecter et télécharger des fichiers depuis un serveur SFTP
function testConnection(context) { let client; try { client = ai.sftp.createClient('mysftp'); } catch(e) { ai.log.logError('An error occurred connecting to the server: ' + e); return false; } finally { if (client) client.disconnect(); } return true; } function importData(context) { const rowset = context.getRowset(); const client = ai.sftp.createClient('mysftp'); const reader = client.downloadFile('./someData.csv'); try { reader.readLine(); let line = reader.readLine(); while (line) { let cells = line.split(','); rowset.addRow(cells); line = reader.readLine(); } } catch(e) { ai.log.logError('An error occurred downloading the file: ' + e); } finally { client.disconnect(); reader.cleanUp(); } }