Come sincronizzare OneDrive Business / Office 365 su Linux?


24

Microsoft OneDrive Business / Office 365 Pro offre 1 TB di spazio di archiviazione cloud, ma sfortunatamente non c'è mai stato un metodo per sincronizzarlo su Linux.


2
Benvenuto in Ask Ubuntu ! Siamo un sito di domande e risposte, non un forum. Attualmente hai sia una domanda che una risposta nella sezione delle domande designate. Si prega di modificare il tuo post per rimuovere la risposta e post che nella sezione di risposta qui sotto (ci dovrebbe essere un pulsante nella parte inferiore della pagina). Grazie!
Seth,

Risposte:


7

Attualmente la onedrive-d sperimentale è un programma open source in grado di sincronizzare solo account OneDrive personali in quanto non accetta collegamenti Microsoft Sharepoint. Ecco un metodo per sincronizzare OneDrive Business / Office 365 utilizzando GoodSync per Linux , che è gratuito per uso personale.

  1. Installa la versione adatta alla tua macchina Linux, ad esempio:

    ./goodsync-linux-x86_64-release.run
    

    Risposta da n o sia per l'installazione GoodSync Collegare e GsServer Web UI.

  2. Apri OneDrive in un browser web. seleziona "Ritorna a Classic OneDrive" nella parte in basso a destra.
  3. L'indirizzo web nel tuo browser ora apparirà: https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspxe sulla base di esso ottieni il tuo link di sincronizzazione che sarà office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
  4. Crea un nuovo file nella sottocartella .goodsync nella tua casa:

    gedit ~/.goodsync/jobs.tix
    
  5. Inserisci il seguente codice nel file e salvalo:

    <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>
    
  6. Inizia il processo di sincronizzazione:

    gsync sync "OneDrive_Sync"
    
  7. A questo punto il tuo browser web aprirà la pagina OneDrive / Office 365 e chiederà la tua autorizzazione per consentire a goodsync di accedere al tuo account. Dopo aver inserito le credenziali verrà avviata la sincronizzazione.

Limitazioni: Microsoft non ammette richieste URL con una lunghezza superiore a 270 caratteri e pertanto GoodSync NON PU syn sincronizzare i file con percorsi lunghi.

Godere!


3
Il mio browser non apre la pagina di autorizzazione al punto 7. Hai idea di come farlo manualmente?
pat-s

3
Anche il mio browser non è aperto al login
Haha TTpro,

2
File system su office365: /.../ I documenti sono stati sostituiti dalla nuova API OneDrive V2. Fai clic sul pulsante Sfoglia per ripetere la ricerca nella cartella di sincronizzazione di OneDrive, poiché New OneDrive richiede l'autenticazione basata su browser (OAuth2)
Ferroao,

6

Ubuntu 18.04 e versioni successive

Esiste un client OneDrive nei repository Ubuntu predefiniti in Ubuntu 18.04 e versioni successive. OneDrive è il sistema di archiviazione cloud di Microsoft. Questo pacchetto fornisce il client della riga di comando specializzato nella sincronizzazione con l'archiviazione cloud OneDrive.

Installalo con:

sudo apt install onedrive

A prima vista, ti chiede di autenticarti con un link. Dopo l'autenticazione è possibile abilitare il Deamon con systemctl --user enable onedrivee quindi systemctl --user start onedrive. Ulteriori spiegazioni sono disponibili nella manpage man onedrive. È molto facile da configurare e richiede solo circa cinque minuti.


4
Questo non funziona per OneDrive for Business
tricasse il

1
@tricasse Funziona con Office 365 Pro
Mattia_98

2

Mentre lo strumento originale e comunemente usato onedrivedda xybu non supporta ancora OneDrive for Business, ma solo OneDrives personali. tuttavia, esiste un fork di questo progetto su GitHub di derrix060 che ha un'implementazione in qualche modo funzionante (ma ancora errata) per il client Business.

Avvertenza: quando usi questo metodo, ti consiglio vivamente di verificare sempre che i file siano stati sincronizzati correttamente controllandoli online su https://www.office.com e / o di utilizzare il mio script wrapper mostrato alla fine di questa pagina almeno per essere informato di eventuali errori utilizzando le notifiche desktop!

A volte sembra che onedrived non riesca a raccogliere alcune modifiche o caricarle correttamente, lasciando OneDrive in uno stato (parzialmente) non sincronizzato. Può anche accadere che generi conflitti di unione con se stesso per qualche motivo e rinomina i file localmente aggiungendo il nome host tra parentesi e facoltativamente un numero. Sfortunatamente non ci sono notifiche sugli errori, ma puoi vedere le voci nel tuo file di log.

In tal caso, puoi provare a sincronizzare nuovamente i rispettivi file toccandoli ad esempio o rinominandoli o nella cartella in cui si trovano.

Suggerimento: sembra che la libreria onedrived abbia spesso problemi soprattutto con i file salvati direttamente nella radice di OneDrive. Probabilmente è meglio mettere tutti i file nelle sottodirectory invece di scaricarli direttamente nella cartella OneDrive.

Anche se sembra stupido, ho anche notato che sembra causare meno problemi a caricare i file attraverso il client Web OneDrive e attendere fino a quando non vengono sincronizzati nuovamente nella cartella locale (che può richiedere alcuni minuti) rispetto a crearli o copiarli / spostarli localmente. Se questo è pratico o annulla totalmente lo scopo di OneDrive dipende dalla tua decisione ...

Vedere il file Leggimi del progetto per le istruzioni di installazione complete, ma ecco un breve riassunto:

Installazione

  1. Assicurati di non avere altre versioni di onedrived(o onedrive-d) installate.

  2. Installa i pacchetti di dipendenza:

    sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
    
  3. Scarica l'ultimo ngrokclient per Linux dal sito Web ufficiale all'indirizzo https://ngrok.com/download . Il ngrok-clientpacchetto dai repository Ubuntu è troppo vecchio e non soddisfa i requisiti.
    Decomprimere l' ngrok-stable-linux-amd64.ziparchivio scaricato . Contiene un singolo ngrokbinario, che dovresti mettere in una posizione sul tuo $PATH, ad es /usr/local/bin/.
    La registrazione a ngrok non è probabilmente necessaria.

  4. Installa l' onedrivedapplicazione Python3 da GitHub usando pip3:

    sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
    
  5. Facoltativamente, configurare un percorso per il file di registro per onedrived, in cui è possibile verificare la presenza di problemi se qualcosa non dovesse funzionare correttamente, ad esempio:

    onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
    

Configurazione dell'account e configurazione dell'unità

Al termine dell'installazione, devi configurare il tuo account e le tue unità:

  1. Aggiungi il tuo account OneDrive for Business utilizzando la modalità interattiva eseguendo:

    onedrived-pref account add -b
    

    La procedura guidata interattiva ti chiederà due volte di aprire un collegamento nel tuo browser, in cui dovrai autorizzare l'applicazione con il tuo account Microsoft Business.
    Ti verrà chiesto di incollare l'URL a cui sei reindirizzato dopo aver confermato l'autorizzazione nella procedura guidata interattiva. Si prega di fare come detto e seguire le istruzioni fornite dal comando.

  2. Verifica che l'account sia stato aggiunto correttamente controllando l'output del comando seguente. Dovrebbe apparire simile ed elencare l'account con cui hai effettuato l'accesso:

    $ 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
    
  3. Configura le tue unità nella modalità di comando interattiva eseguendo:

    onedrived-pref drive set
    

    Vedrai un elenco di tutte le unità e ti verrà chiesto di inserire il numero di riga dell'unità che desideri aggiungere alla configurazione locale.
    È quindi necessario specificare una directory locale che si desidera utilizzare come cartella principale per la sincronizzazione con l'unità. Puoi semplicemente premere Entere utilizzerà il valore predefinito ~/OneDrive. Se il percorso non esiste, verrà creato. Stessa cosa per il percorso del file ignore che vuoi usare, puoi semplicemente premere Entere utilizzerà il valore predefinito ~/.config/onedrived/ignore_v2.txte crearlo, se necessario.

  4. Controllare l'output del comando seguente per visualizzare le informazioni su tutte le unità disponibili e configurate. Dovrebbe mostrare l'unità che hai appena impostato con le impostazioni corrette sotto il titolo Drives that have been set up:

    onedrived-pref drive list
    

Avvio del demone

Ora che l'unità è configurata, devi provare e avviare il onedriveddemone. Ti consiglio di avviarlo prima in modalità debug, nel caso in cui ci fossero problemi che altrimenti perderesti. Questo inizierà onedrivedin primo piano:

onedrived start --debug

Se tutto è a posto e il comando non si arresta in modo anomalo e non si chiude, prova a mettere alcuni file nella cartella OneDrive locale e verifica se si sincronizza. Probabilmente dovresti essere in grado di verificarlo visitando l'applicazione Web OneDrive su https://www.office.com e controllando se i file aggiunti localmente vengono visualizzati lì.

Puoi uscire di onedrivednuovo dal tuo terminale premendo Ctrl+ C.

Per avviare onedrivednormalmente, come demone in background, eseguilo con:

onedrived start

Probabilmente dovresti aggiungere questo comando alle tue applicazioni di avvio, in modo che si avvii automaticamente ogni volta che accedi. Fare riferimento a Come posso avviare automaticamente le applicazioni al login? per quello.

Wrapper per le notifiche di errore

Se desideri ricevere notifiche desktop ogni volta che onedrivedregistra un errore (ad es. Sincronizzazione file non riuscita), ecco uno script wrapper che analizza il file di registro in tempo reale e utilizza la notifica-invio per visualizzarli.

È possibile avviare lo script wrapper senza argomenti (o inserirlo nelle applicazioni di avvio automatico) invece del onedrived startcomando.

#!/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
        echo "$LINE"
        if MESSAGE="$(grep -Pio '(?<=ERROR: ).*' <<< "$LINE")" ; then
            notify-send -i "$ICON_ERROR" "OneDrive Error" "$MESSAGE"
        fi
    done

Ricevo ancora il messaggio "Impossibile autorizzare onedrived: interaction_required." dopo aver inserito il secondo collegamento per l'autenticazione dell'account ODfB. Qualche idea sul perché ciò possa accadere?
Jimakos,

@Jimakos Spiacente, non ho mai incontrato quel messaggio. Nessuna idea, sfortunatamente.
Byte Commander

1

rclone supporta OneDrive for Business. Leggi un articolo Come montare OneDrive su Linux usando Rclone (supporta account aziendali e personali) - Blog di Rivolta di Linux per l'uso.

Ecco il mio esempio per configurare un nuovo telecomando onedrive1con rclone 1.48.0 (su 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 dell'unità 0 termina con /ElementinnerHTMLe non contiene file nel mio caso.

Quindi montarlo su una directory locale tramite riga di comando, rclone-browser o GUI Web dalla v1.49 .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.