¿Cómo sincronizar OneDrive Business (Office 365) en Linux (Ubuntu)?

Probé la solución propuesta por Sayed Metwaly ( ¿Cómo sincronizar OneDrive Business / Office 365 en Linux? ) Pero recibí el siguiente mensaje de error:

=== Job === OneDrive_Sync: 'office365://xxxxxxxxx-my.sharepoint.com/personal/xxxxxx_oasis_xxxxxxxxx_be/Documents'  'file:///home/xxxxxx/Onedrive' 142724 L: No file system for office365://xxxxxxxxx-my.sharepoint.com/personal/xxxxxx_oasis_xxxxxxxxx_be/Documents File system at office365://xxxxxxxxx-my.sharepoint.com/personal/xxxxxx_oasis_xxxxxxxxx_be/Documents has been replaced by New OneDrive V2 API. Click Browse button to Re-Browse to your OneDrive sync folder, as New OneDrive requires browser-based authentication (OAuth2) 

¿Alguna idea de lo que hice mal? Gracias

Esto es lo que hice para que funcionara muy rápido:

  1. Usó una máquina Windows para configurar una sincronización usando la versión Windows de Goodsync. Esto incluye la configuración de la autorización (basada en navegador) con Office 365.
  2. Usé la opción “Exportar” en la versión de Windows de Goodsync para crear un archivo jobs.tix .
  3. Creó una carpeta ~/.goodsync en la máquina Linux.
  4. Colocó el archivo jobs.tix en esa carpeta.
  5. Este es un NUEVO PASO que tuve que descubrir por mi cuenta: RENAMADO el archivo jobs.tix a jobs-groups-options.tix – esto permitió que se usara toda la configuración.
  6. Se aplicaron los siguientes cambios, como se muestra en la salida de diff del archivo original de jobs.tix Windows:
     $ diff ~ / Downloads / jobs.tix ~ / .goodsync / jobs-groups-options.tix
     51c51
      Url = "file: /// home / tomh / onedrive"
     54c54
      Url = "file: /// home / tomh / onedrive"
     68c68
     <} Marcadores = {} TimeStamp = 013061702176
     –––
     >} Marcadores = {} TimeStamp = 013061705503
     84c84
      Url = "file: /// home / tomh / onedrive"
     87c87
      AcctUrl = "file: /// home / tomh / onedrive"
    

    Donde tomh-a es mi nombre de usuario de Windows, od era mi carpeta local de Windows OneDrive, tomh es mi nombre de usuario de Linux y onedrive es mi carpeta local de Linux OneDrive. Puedes ignorar de forma segura las líneas de TimeStamp , simplemente las dejé para completarlas. Tenga en cuenta que esta salida de diff no fue saneada o modificada de ninguna manera, excepto para reemplazar ciertos caracteres con las entidades HTML correspondientes. Así que sí, todos saben mis nombres de usuario de Windows y Linux y las carpetas de sincronización de OneDrive. No puedo ver cómo eso compromete mi seguridad y mejora las posibilidades de que sea libre de errores.

  7. Cambié una cosa oscura que la hace funcionar: encontrarás estas dos líneas en el archivo:
      Side2 = 
     Conn =  

    Cambié la segunda línea de la siguiente manera:

      Side2 = 
     Dir =  

    Y de inmediato comenzó a funcionar.
    Descargo de responsabilidad: después de ejecutar la sincronización (siguiente paso) Goodsync cambió la línea de nuevo a Conn = . Así que podría estar equivocado. Tal vez podría haberlo dejado como está (y es otra vez). Pero ese es el último cambio que hice antes de que empezara a funcionar. Es completamente posible que haya cambiado algo más al mismo tiempo que lo hizo funcionar. Pero al menos hacer ese cambio no me lo rompió 🙂

  8. Ejecutar la sincronización con
      gsync sync "onedrive" 

    sustituyendo “Onedrive” por lo que aparezca en las líneas que parecen:

      Jobs = {
     Nombre = "Onedrive" 

Creo que el requisito de la API v2.0 de usar OAuth ha hecho que sea imposible simplemente tomar el archivo jobs-groups-options.tix otra persona y hacerlo funcionar simplemente utilizando Linux. Es decir, hasta que decidan hacer una versión de GUI para Linux, o al menos agregar el código OAuth que inicia su navegador para establecer la autorización.

Me encontré con el mismo problema hoy. Lo que me funcionó al final, fue descargar y utilizar la GUI de GoodSync en una máquina con Windows y transferir la configuración final a mi máquina con Linux.

En Windows, configuré mi Business OneDrive siguiendo estas instrucciones . A continuación, utilicé la función “exportar trabajos seleccionados” de la GUI (haga clic con el botón derecho en el nombre del trabajo) para exportar un archivo jobs.tix . Este es el archivo de configuración que necesita.

En Ubuntu, pegue el archivo jobs.tix en ~/.goodsync/ y ~/.goodsync/ en un editor de texto para actualizar la url del lado del cliente a la carpeta correspondiente en su sistema de archivos local. Finalmente, simplemente ejecute gsync sync [jobname] para sincronizar todos los archivos. Esto me funcionó tanto en sentido ascendente como descendente.

  2 Name = "name" 3 Side1 =  4 Dir =  5 Url = "file:///home/username/path/bla" 6  7  8 Side2 =  9 Dir =  10 Url = "msdrive://-my.sharepoint.com/_api/v2.0/me" 11 UserID = "myid+somegarbleinhex" 12 AccessToken = "blaaaah" 13 RefreshToken = "blaaahA" 14  15 UseTmpDestFile = No 16  17 Direction = 0 ExcludeHidden = Yes ExcludeSystem = Yes DetectMovesAndRenames = Yes LinksOption = 1