Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.
Bonjour à tous,
Chez nous, le début du confinement tombe, hasard du calendrier, avec notre passage sur OneDrive et des bibliothèques partagées Sharepoint pour nos documents internes.
Je vais donc vous expliquer comment configurer un client OneDrive sous Linux (Manjaro KDE ici) afin de pouvoir synchroniser tout cela.
Installation du client
Si vous utilisez Manjaro comme moi et que vous YAY d’installé, lancez simplement la commande suivante :
yay -s onedrive-abraunegg
Sinon, allez sur la page du repository sur GitHub et regardez la documentation : https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md
C’est déjà disponible sous forme de paquet pour quasiment toutes les grosses distributions.
Configuration du client pour synchroniser son OneDrive personnel
Lancez simplement la commande suivante depuis le terminal :
onedrive
Il vous donnera une URL, allez dessus, connectez-vous avec votre compte et ensuite vous tomberez sur une page blanche.
Une fois que vous êtes sur cette fameuse page blanche, récupérez l’url dans votre navigateur et balancez ça dans le terminal, c’est votre code d’autorisation pour l’application.
Maintenant, créez un fichier de configuration basique :
nano $HOME/.config/onedrive/config
Les seules lignes obligatoires sont les suivantes, la première c’est pour le dossier en local où vous mettrez les fichiers et la deuxième pour l’exclusion des fichiers de bases (fichier office temporaire par exemple) :
sync_dir = "/home/nicolas/OneDrive-Travail/" skip_file = "~*|.~*|*.tmp"
Sauvegardez le fichier.
Maintenant, lancez la première synchronisation :
onedrive --synchronize --resync
Une fois que cela est fini, vous pourrez lancer une synchronisation à la main avec la commande suivante :
onedrive --synchronize
Configuration du client pour synchroniser une bibliothèque Sharepoint partagée
Ici, on va devoir créer un nouveau dossier, pour une nouvelle configuration, car si on ajoute juste la bibliothèque partagée, il va tout synchro dans le même dossier, ce que l’on ne veut pas.
mkdir -p $HOME/.config/onedrive/config-sharepoint
Maintenant, lancez la commande suivante :
onedrive --confdir="$HOME/.config/onedrive/config-sharepoint" --verbose --verbose --get-O365-drive-id '*'
Un merdier incroyable va ressortir, ce qui nous intéresse est à la toute fin, sous cette forme :
[DEBUG] Found O365 Site: {"createdDateTime":"2020-03-17T17:29:05Z","displayName":"BiB Part",
Maintenant que vous avez le nom de votre bibliothèque partagée, lancez la même commande, mais avec le nom de la bibliothèque et sans le mode verbose :
onedrive --confdir="$HOME/.config/onedrive/config-sharepoint" --get-O365-drive-id 'BiB Part'
Vous obtiendrez ceci :
[nicolas@nicolas-IDDI ~]$ onedrive --confdir="$HOME/.config/onedrive/config-sharepoint" --get-O365-drive-id 'BiB Part' Initializing the Synchronization Engine ... Office 365 Library Name Query: BiB Part SiteName: BiB Part drive_id: b!Vek6purgUU2GnbfHr4JttECj-IimIASD52sDN8JVfWdRokAsFCxRoAi-aIEUiFh URL: https://X.sharepoint.com/BiBPart
Notez bien le drive_id, c’est la clé du succès.
Créez maintenant le fichier de configuration :
nano $HOME/.config/onedrive/config-sharepoint/config
Pas beaucoup plus de choses que pour le premier, changez simplement de dossier et ajoutez le drive ID :
sync_dir = "/home/nicolas/OneDrive-BiBPart/" skip_file = "~*|.~*|*.tmp" drive_id = "b!Vek6purgUU2GnbfHr4JttECj-IimIASD52sDN8JVfWdRokAsFCxRoAi-aIEUiFh"
Lancez maintenant la première synchronisation de cette bibliothèque avec la commande suivante :
onedrive --confdir="$HOME/.config/onedrive/config-sharepoint" --synchronize --resync
Les prochaines synchronisations se feront comme ça :
onedrive --confdir="$HOME/.config/onedrive/config-sharepoint" --synchronize
Si vous avez plusieurs bibliothèques, vous suivez le même principe, à la fin vous pourrez vous faire un script comme moi qui lance les synchro :
echo "Syncing Perso OneDrive" onedrive --confdir="/home/nicolas/.config/onedrive/config-perso" --synchronize echo "Syncing TT2 OneDrive" onedrive --confdir="/home/nicolas/.config/onedrive/config-TT2" --synchronize echo "Syncing TT3 OneDrive" onedrive --confdir="/home/nicolas/.config/onedrive/config-TT3" --synchronize
Même s’il y a moyen de le mettre sous forme de service pour que ça synchronise en permanence en arrière-plan, je ne préfère pas le faire.
Bonne journée,
Merci pour cet article: il aide à mettre en œuvre rapidement une synchronisation entre son oneDrive du « cloud in the net » made by Microsoft et son répertoire « /home ».
Super Article! Merci pour l’aide!