# format wiki
# LANGUAGE it
<<BR>>
<<Indice(depth=2)>>
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=652346"; rilasci="24.04 22.04 20.04")>> 

= Introduzione =

In questa guida si descrivono le procedure di installazione e configurazione di '''[[https://www.microsoft.com/it-it/microsoft-365/onedrive/online-cloud-storage|Microsoft OneDrive]]'''.

'''!OneDrive''' è un servizio di cloud storage offerto da Microsoft che permette di sincronizzare file tra diversi dispositivi e accedervi online. Per utilizzare '''!OneDrive''' su Ubuntu, occorre installare client appositi, di cui due dei più popolari sono '''[[https://www.insynchq.com/|insync]]''' e '''[[https://abraunegg.github.io/|OneDrive Client for Linux]]'''.

= Preparativi =

 * Bisogna innanzitutto disporre di un account Microsoft attivo. Se necessario, è possibile crearne uno da [[https://account.microsoft.com/|questa pagina]].
 * Qualora il proprio account Microsoft richieda un controllo di sicurezza e/o dell'identità su un dispositivo associato (ad esempio il proprio smartphone), assicurarsi che quest'ultimo sia a portata di mano per disporre eventuali autorizzazioni durante la procedura.

= Installazione =

{{{#!wiki important
Il pacchetto ''onedrive'' presente nei [[Repository#Repository_ufficiali|repository ufficiali]] è obsoleto e non più supportato. Per questo motivo di seguito verrà utilizzato quello presente nel repository '''[[https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/|OpenSuSE Build Service (OBS)]]'''.
}}}

== Ubuntu 20.04 e successive ==

 0. Se non presente, [[AmministrazioneSistema/ComandiBase#mkdir|creare]] con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] la directory `/etc/apt/keyrings`.
 0. Importare la chiave della firma dei pacchetti del repository '''!OneDrive''' digitando nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{
wget -qO - https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_$(lsb_release -rs)/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/obs-onedrive.gpg -
}}}
 0. Importare il repository di '''!OneDrive''' con il comando:{{{
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/obs-onedrive.gpg] https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_$(lsb_release -rs)/ ./" | sudo tee /etc/apt/sources.list.d/onedrive.list
}}}
 0. Assicurarsi che il file `/etc/apt/keyrings/obs-onedrive.gpg` e i relativi [[AmministrazioneSistema/PermessiFile#Visualizzare_i_permessi|permessi di esecuzione]] siano attribuiti all'utente root. In caso contrario modificarli con le istruzioni contenute in [[Repository/GestioneRepositoryTerzeParti#Installazione_diretta_del_file_gpg|questa guida]].
 0. [[AmministrazioneSistema/InstallareProgrammi/Apt#Aggiornamento_del_sistema|Aggiornare la lista dei pacchetti]].
 0. Installare il il pacchetto ''onedrive'' con le opzioni indicare nel seguente comando:{{{
sudo apt install --no-install-recommends --no-install-suggests onedrive
}}}

Al termine della procedura, sarà possibile [[AmbienteGrafico/AvviareProgrammi#Avviare_programmi_da_terminale|avviare]] '''!OneDrive''' (con il [[AmministrazioneSistema/Terminale|terminale]] ].

== Avvio servizio ==
=== Concedere autorizzazione accesso ===

Per lanciare il tool si dovrà prima ottenere l'URL che servirà ad autorizzare il client alla connessione e all’accesso dell'account '''!OneDrive'''.

{{{#!wiki note
Poiché l'autorizzazione scade in breve tempo, è necessario eseguire rapidamente i seguenti passaggi.
}}}

 0. Nel [[AmministrazioneSistema/Terminale|terminale]] digitare il seguente comando:{{{
onedrive
}}} 
 Verrà visualizzato nell'output un messaggio con l'indirizzo URL:{{{
Authorize this app visiting:
 
https://login.microsoftonline.com/common
}}}
 0. Copiare e incollare l'indirizzo ottenuto nella barra degli indirizzi di un [[InternetRete/Navigazione#Browser_per_navigare|browser]].
 0. Inserire e confermare le credenziali d'accesso per !OneDrive. La pagina del browser diventerà bianca e l’indirizzo URL cambierà (avrà nella parte finale il codice di conferma `?code=`.
 0.  Nel [[AmministrazioneSistema/Terminale|terminale]], alla dicitura{{{
Enter the response uri: 
}}} 
 copiare il nuovo indirizzo completo fornito dal [[InternetRete/Navigazione#Browser_per_navigare|browser]].

== Test configurazione sincronizzazione account ==

{{{#!wiki note
A fini di test, nessun file verrà scaricato, caricato o rimosso! Verrà creata una cartella '''!OneDrive''' (se non esiste) nella directory home dell'utente per la sincronizzazione dei file.
}}}

Dopo aver [[InternetRete/Navigazione/OneDrive#Avvio_servizio|configurato  e autorizzato l'app]] a sincronizzare l'account, è possibile testare a eseguire il client,  nel [[AmministrazioneSistema/Terminale|terminale]] eseguendo il comando:{{{
onedrive --dry-run --sync
}}}

Se il test procede senza errori, proseguire alla Sincronizzazione dell'account.

<<Anchor(sincronizzazione)>>
= Sincronizzazione =

## Inserire ivantu/SincronizzazioneCloud_prova appena pronta la guida revisionata

Sarà quindi possibile sincronizzare le directory e i file contenuti nel cloud con il sistema Ubuntu. A tal scopo digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
onedrive --sync
}}}


Oppure utilizzare il seguente comando:{{{
onedrive --sync --local-first
}}} per caricare prima i file locali (dalla cartella '''!OneDrive''' dell'utente) e poi scaricarli dal cloud.

== Sincronizzare una sola cartella ==

Per sincronizzare solo una singola cartella, ad esempio la sottocartella "Pictures" nella directory '''!OneDrive''', eseguendo il comando:{{{
onedrive --sync --single-directory 'Pictures'
}}} 

== Sincronizzare solo i file locali ==

Sincronizzare i file locali solo tramite il comando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
onedrive --sync --upload-only
}}}

== Sincronizzare solo le differenze in locale ==

Sincronizzare le differenze locali tramite il comando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
onedrive --sync --download-only
}}}

== Non rimuovere i file precedentemente sincronizzati ==

Sincronizzare i file locali solo tramite il comando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
onedrive --sync --no-remote-delete
}}} 
##per NON rimuovere i file precedentemente sincronizzati ma successivamente eliminati manualmente.

= Sincronizzare file in remoto con LibreOffice =

È possibile utilizzare '''[[https://it.wikipedia.org/wiki/LibreOffice|LibreOffice]]''' per connettersi e sincronizzare file in remoto con il servizio cloud '''!OneDrive'''.

Per sincronizzare un server remoto con '''[[Ufficio/LibreOffice|LibreOffice]]''', usare i seguenti metodi:

 0. Aprire [[Ufficio/LibreOffice|LibreOffice]].
 0. A seconda dei casi seguire il percorso:
  * '''''File → Apri in remoto'''''
  * '''''File → Salva in remoto''''' 
 0. Fare clic su '''Aggiungi servizio'''.

== Servizi ==

Accedendo ai servizi per la prima volta: 
 0. Impostare le finestre di dialogo e fare clic su '''OK'''.
 0. Selezionare la casella di controllo '''Connessione sicura''' per accedere al servizio tramite il protocollo https e la porta 443.
 0. Attivare la casella '''Memorizza password''' per salvare le proprie credenziali.

== Condivisione Windows ==

Di seguito sono elencati i parametri necessari per la condivisione Windows:

 * Tipo: Condivisione Windows
 * Host: l'URL del server
 * Condivisione: la condivisione Windows
 * Utente e Password: nome utente e password dell'account MSN
 * Etichetta: nome connessione
 * Radice: percorso dell'account

##== Server WebDAV ==

## * Tipo: WebDAV
## * Host: l'URL del server
## * Porta: 80
## * Etichetta: nome connessione.
## * Radice: percorso dell'account

##== FTP e SSH ==

## * Tipo: FTP o SSH
## * Host: l'URL del server
## * Porta: 21 (per FTP), 22 (per SSH)
## * Utente e Password: il nome utente e la password del servizio FTP o SSH
## * Etichetta: nome connessione
## * Radice: percorso dell'account

##== Server CMIS ==

## * Tipo: selezionare il tipo di server nell'elenco.
## * Host: l'URL del server
## * Utente e Password: nome utente e la password del servizio CMIS.
## * Deposito: deposito dei file nell'elenco a cascata.
## * Pulsante Aggiorna: aggiornare il contenuto dell'elenco del deposito.
## * Etichetta: nome connessione
## * Radice: inserire il percorso all'indirizzo radice del vostro account

= Risoluzione problemi =

== Errore Synchronize ==

Qualora compaia il seguente messaggio di errore:{{{
Configuring Global Azure AD Endpoints

ERROR: Microsoft OneDrive API returned an error with the following message:
  Error Message:    HTTP request returned status code 400 (Bad Request)
  Error Reason:     xxxxxxxxxxx: The user could not be authenticated as the grant is expired. The user must sign in again.
Trace ID: <<codice esadecimale>>
Correlation ID: <<codice esadecimale>>
Timestamp: 2023-06-25 15:11:17Z

ERROR: Microsoft OneDrive API returned an error with the following message:
  Error Message:    HTTP request returned status code 401 (Unauthorized)
  Error Reason:     Access token is empty.
  Error Timestamp:  2023-06-25T15:11:17
  API Request ID:   <<codice esadecimale>>

ERROR: Check your configuration as your refresh_token may be empty or invalid. You may need to issue a --reauth and re-authorise this client.
}}}
potrebbe essersi verificato un blocco nella sincronizzazione al server di Microsoft.

Per risolvere:
 0. Ripetere la sincronizzazione del proprio account attivo scrivendo nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
onedrive --reauth
}}}
 come suggerito nel messaggio di errore.
 0. Eseguire nuovamente i passaggi del paragrafo [[#Sincronizzazione|Sincronizzazione]].

== Errore firma durante aggiornamento ==

Qualora aggiornando l'applicazione compaia il seguente messaggio di errore:{{{
gpgv:/var/lib/apt/lists/partial/download.opensuse.org_repositories_home:_npreining:_debian-ubuntu-onedrive_xUbuntu%255f22.04_._InRelease
The following signatures were invalid: EXPKEYSIG B8AC39B0876D807E home:npreining OBS Project <home:npreining@build.opensuse.org>
}}}
ripetere la procedura per importare la chiave della firma dei pacchetti, digitando il comando:{{{
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/obs-onedrive.gpg] https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_$(lsb_release -rs)/ ./" | sudo tee /etc/apt/sources.list.d/onedrive.list
}}}

= Ulteriori risorse =

 * [[https://rclone.org/onedrive/|Rclone con Microsoft OneDrive]] (guida dal sito ufficiale del progetto)
 * [[https://github.com/abraunegg/onedrive/blob/master/docs/known-issues.md|Problemi noti]] (guida nella pagina ufficiale del progetto)
 * [[https://it.wikipedia.org/wiki/Cloud_computing|Cloud Computing]] (pagina enciclopedica)

----
CategoryInternet