Microsoft OneDrive Business/Office 365 Pro offre 1 To de stockage dans le nuage, mais il n'y a malheureusement jamais eu de méthode pour le synchroniser sur Linux.
Réponses
Trop de publicités?Ubuntu 18.04 et versions ultérieures
UPDATE :
Les instructions ci-dessous permettent de procéder à l'installation à partir de apt
fonctionne, mais la version dans apt
est trop obsolète et ne parvient pas à analyser l'URI d'autorisation. Au lieu de cela, il convient de suivre la méthode INSTALL.md
La doc pour compiler et installer à partir des sources fonctionne :
https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md
PRÉCÉDENT :
Il existe un Client OneDrive dans les dépôts Ubuntu par défaut dans Ubuntu 18.04 et plus. OneDrive est le système de stockage en nuage de Microsoft. Ce paquetage fournit le client en ligne de commande spécialisé dans la synchronisation avec le stockage en nuage OneDrive.
L'installer avec :
sudo apt install onedrive
Lors de la première exécution, il vous demande de vous authentifier à l'aide d'un lien. Après l'authentification, vous pouvez activer le deamon avec systemctl --user enable onedrive
et ensuite systemctl --user start onedrive
.
Il surveillera et synchronisera les données OneDrive localement dans ~/OneDrive
. De plus amples explications peuvent être trouvées dans la page de manuel man onedrive
. Il est très facile à installer et ne prend que cinq minutes.
Actuellement, le programme expérimental onedrive-d est un programme open-source qui ne peut synchroniser que les comptes OneDrive personnels car il n'accepte pas les liens Microsoft Sharepoint. Voici une méthode pour synchroniser OneDrive Business/Office 365 à l'aide de GoodSync pour Linux qui est gratuit pour un usage personnel.
-
Installez la version appropriée sur votre machine Linux, par exemple :
./goodsync-linux-x86_64-release.run
Réponse de n o pour l'installation de GoodSync Connect et l'interface Web de GsServer.
-
Ouvrez OneDrive dans un navigateur web. Sélectionnez "Retourner à OneDrive classique" en bas à droite.
-
L'adresse web de votre navigateur se présente désormais comme suit :
https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspx
et, sur cette base, obtenir votre lien de synchronisation qui seraoffice365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents
. -
Créez un nouveau fichier dans le sous-dossier .goodsync de votre domicile :
gedit ~/.goodsync/jobs.tix
-
Saisissez le code suivant dans le fichier et enregistrez-le :
<Job> Name = "OneDrive_Sync" Side1 = <SideOptions> Dir = <Connect> Url = "put_your_syncing_link_here" UserID = "put_your_OneDrive/Office365_Bussiness_email_here" </Connect> </SideOptions> Side2 = <SideOptions> Dir = <Connect> Url = "file:///your_home_folder/one_drive_folder" </Connect> </SideOptions> Direction = 0 ExcludeHidden = No ExcludeSystem = No DetectMovesAndRenames = Yes LinksOption = 1 ExcludeEmptyFolders = No LimitChangesPercent = 100 AutoResolveConflicts = 3 DetectMovesAndRenames = Yes </Job>
-
Lancer le processus de synchronisation :
gsync sync "OneDrive_Sync"
-
À cette étape, votre navigateur Web ouvrira la page OneDrive/Office 365 et vous demandera votre autorisation pour permettre à goodsync d'accéder à votre compte. Après avoir saisi vos informations d'identification, la synchronisation commencera.
Limites : Microsoft n'autorise pas les demandes d'URL de plus de 270 caractères et GoodSync NE PEUT donc PAS synchroniser des fichiers avec de longs noms de chemin.
Bonne lecture !
rclone prend en charge OneDrive for Business. Voir un article Comment monter OneDrive sous Linux à l'aide de Rclone (prend en charge les comptes professionnels et personnels) - Linux Uprising Blog pour l'utilisation.
Voici mon exemple de mise en place d'une nouvelle télécommande onedrive1
avec rclone 1.48.0 (sur Fedora 30) :
$ rclone config
2019/10/10 06:35:56 NOTICE: Config file ".config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> onedrive1
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
19 / Microsoft OneDrive
\ "onedrive"
Storage> 19
** See help for onedrive backend at: https://rclone.org/onedrive/ **
Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Choose a number from below, or type in an existing value
1 / OneDrive Personal or Business
\ "onedrive"
2 / Root Sharepoint site
\ "sharepoint"
3 / Type in driveID
\ "driveid"
4 / Type in SiteID
\ "siteid"
5 / Search a Sharepoint site
\ "search"
Your choice> 1
Found 2 drives, please select the one you want to use:
0: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T9B****
1: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T-H****
Chose drive to use:> 1
Found drive 'root' of type 'business', URL: https://example-my.sharepoint.com/personal/myname_example_com/Documents
Is that okay?
y) Yes
n) No
y/n> y
Current remotes:
Name Type
==== ====
onedrive1 onedrive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
L'URL du lecteur 0 se termine par /ElementinnerHTML
et ne contient pas de fichiers dans mon cas.
Montez-le ensuite dans un répertoire local à l'aide de la ligne de commande, rclone-browser o interface graphique web depuis la version 1.49 .
Bien que l'expression originale et couramment utilisée onedrived
de xybu ne prend toujours pas en charge OneDrive for Business, mais uniquement les OneDrives personnels. une fourche de ce projet sur GitHub par derrix060 qui dispose d'une implémentation qui fonctionne d'une certaine manière (mais qui est encore boguée) pour le client professionnel.
Avertissement : Lorsque vous utilisez cette méthode, je vous recommande vivement de toujours vérifier que les fichiers ont été synchronisés correctement en les vérifiant en ligne à l'adresse suivante https://www.office.com et/ou d'utiliser mon wrapper script montré à la fin de cette page pour au moins être informé de toute erreur à l'aide des notifications de bureau !
Parfois, onedrived semble ne pas prendre en compte certaines modifications ou les télécharger correctement, laissant votre OneDrive dans un état (partiellement) non synchronisé. Il peut également arriver qu'il génère des conflits de fusion avec lui-même pour une raison quelconque et renomme vos fichiers localement en ajoutant votre nom d'hôte entre parenthèses et éventuellement un numéro. Malheureusement, il n'y a pas de notification sur les erreurs, mais vous pouvez voir les entrées dans votre fichier journal.
Si cela se produit, vous pouvez essayer de synchroniser à nouveau les fichiers concernés, par exemple en les touchant ou en les renommant ou en renommant le dossier dans lequel ils se trouvent.
Conseil : Il semble que la bibliothèque onedrived ait souvent des problèmes, en particulier avec les fichiers qui ont été enregistrés directement dans la racine OneDrive. Il est probablement préférable de placer tous les fichiers dans des sous-répertoires plutôt que de les déverser directement dans le dossier OneDrive.
Bien que cela semble stupide, j'ai également remarqué qu'il semble y avoir moins de problèmes à télécharger des fichiers via le client Web OneDrive et à attendre qu'ils soient synchronisés avec votre dossier local (ce qui peut prendre plusieurs minutes) qu'à les créer ou à les copier/déplacer localement. C'est à vous de décider si c'est pratique ou si cela annule totalement l'objectif de OneDrive...
Voir le fichier readme du projet pour les instructions d'installation complètes, mais voici un bref résumé :
Installation
-
Assurez-vous que vous n'avez pas d'autre version de
onedrived
(ouonedrive-d
) installé. -
Installer les paquets de dépendances :
sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
-
Télécharger la dernière version
ngrok
pour Linux sur le site officiel à l'adresse suivante https://ngrok.com/download . Lesngrok-client
des dépôts Ubuntu est trop ancien et ne répond pas aux exigences.
Décompressez le fichier téléchargéngrok-stable-linux-amd64.zip
archives. Elle contient un seulngrok
que vous devez placer dans un endroit de votre site Web.$PATH
, par exemple en/usr/local/bin/
.
Il n'est probablement pas nécessaire de s'inscrire à ngrok. -
Installer le
onedrived
Application Python3 à partir de GitHub en utilisantpip3
:sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
-
Il est possible de configurer l'emplacement d'un fichier journal pour l'application
onedrived
où vous pouvez vérifier s'il y a des problèmes si quelque chose ne fonctionne pas correctement, par exemple :onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
Configuration du compte et du lecteur
Une fois l'installation réussie, vous devez configurer votre compte et votre (vos) lecteur(s) :
-
Ajoutez votre compte OneDrive for Business à l'aide du mode interactif en exécutant :
onedrived-pref account add -b
L'assistant interactif vous demandera à deux reprises d'ouvrir un lien dans votre navigateur, où vous devrez autoriser l'application avec votre compte Microsoft Business.
Il vous demandera de coller l'URL vers laquelle vous avez été redirigé après avoir confirmé l'autorisation dans l'assistant interactif. Veuillez faire ce qui vous est demandé et suivre les instructions de la commande. -
Vérifiez que le compte a été ajouté avec succès en consultant la sortie de la commande ci-dessous. Elle devrait être similaire et indiquer le compte avec lequel vous êtes connecté :
$ onedrived-pref account list All OneDrive accounts associated with user "YOUR_UBUNTU_USERNAME": # Account ID Owner Name Email Address Profile Type --- ------------------------- ------------- -------------------- -------------- 0 YOUR_PERSONAL_ACCOUNT_ID YOUR_NAME YOUR_BUSINESS_EMAIL Business
-
Configurez vos lecteurs en mode de commande interactif en exécutant la commande suivante :
onedrived-pref drive set
Vous verrez une liste de tous vos lecteurs et serez invité à saisir le numéro de ligne du lecteur que vous souhaitez ajouter à votre configuration locale.
Vous devez ensuite spécifier un répertoire local que vous souhaitez utiliser comme dossier racine pour la synchronisation avec votre lecteur. Vous pouvez simplement appuyer sur Enter et il utilisera l'option par défaut~/OneDrive
. Si le chemin n'existe pas, il sera créé. Même chose pour le chemin d'accès au fichier ignore que vous souhaitez utiliser, vous pouvez simplement cliquer sur Enter et il utilisera l'option par défaut~/.config/onedrived/ignore_v2.txt
et le créer, si nécessaire. -
Vérifiez la sortie de la commande ci-dessous pour afficher les informations sur tous les lecteurs disponibles et configurés. Le lecteur que vous venez de configurer avec les paramètres corrects devrait apparaître sous le titre
Drives that have been set up
:onedrived-pref drive list
Lancement du démon
Maintenant que votre disque est configuré, vous devez essayer de démarrer le programme onedrived
daemon. Je recommande de le lancer d'abord en mode débogage, au cas où il y aurait des problèmes que vous n'auriez pas remarqués autrement. Ceci lancera onedrived
au premier plan :
onedrived start --debug
Si tout va bien et que la commande ne se bloque pas et ne se termine pas, essayez de placer quelques fichiers dans votre dossier OneDrive local et voyez s'il se synchronise. Vous devriez pouvoir le vérifier en visitant l'application web OneDrive à l'adresse suivante https://www.office.com et vérifiez si les fichiers que vous avez ajoutés localement y apparaissent.
Vous pouvez quitter le onedrived
dans votre terminal en appuyant sur Ctrl + C .
Pour lancer onedrived
normalement, en tant que démon d'arrière-plan, le faire fonctionner avec :
onedrived start
Vous devriez probablement ajouter cette commande à vos applications de démarrage, afin qu'elle démarre automatiquement à chaque fois que vous vous connectez. Veuillez vous référer à Comment démarrer les applications automatiquement lors de la connexion ? pour cela.
Enveloppe pour les notifications d'erreur
Si vous souhaitez recevoir des notifications de bureau chaque fois que onedrived
Si une erreur survient (par exemple un échec de synchronisation de fichiers), voici un script qui analyse le fichier journal en temps réel et utilise notify-send pour vous l'afficher.
Vous pouvez lancer le wrapper script sans arguments (ou le mettre dans vos applications de démarrage automatique) à la place de la commande onedrived start
commande.
#!/bin/bash
LOGFILE=~/.config/onedrived/onedrived.log
ICON_START=weather-overcast
ICON_STOP=weather-few-clouds
ICON_ERROR=weather-severe-alert
onexit () {
onedrived stop
notify-send -i "$ICON_STOP" "OneDrive" "Wrapper stopped"
echo "onedrived-wrapper stopped"
}
trap onexit EXIT
onedrived stop
echo "---" >> "$LOGFILE"
onedrived start || {
echo "Failed to start onedrived!"
exit 1
}
notify-send -i "$ICON_START" "OneDrive" "Wrapper started"
echo "Monitoring onedrived.log for error messages..."
tail -n 1 -F --pid="$(pgrep -f "onedrived start")" "$LOGFILE" |
while read LINE ; do
ech "$LINE"
if MESSAGE="$(grep -Pio '(?<=ERROR: ).*' <<< "$LINE")" ; then
notify-send -i "$ICON_ERROR" "OneDrive Error" "$MESSAGE"
fi
done