Como Sincronizar o OneDrive Business (Office 365) no Linux (Ubuntu)?

0
Eu tentei a solução proposta por Sayed Metwaly. Sincronizar OneDrive Business / Office 365 no Linux? , mas recebi a seguinte mensagem de erro:

=== 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)

Alguma ideia do que eu fiz de errado? Obrigado

    
por Bernard Nysten 28.09.2016 / 08:04

3 respostas

2

Veja o que fiz para funcionar rapidamente:

  1. Usou uma máquina Windows para configurar uma sincronização usando a versão do Windows do Goodsync. Isso inclui a configuração da autorização (baseada no navegador) com o Office 365.
  2. Use a opção "Exportar" na versão do Windows do Goodsync para criar um arquivo jobs.tix .
  3. Criada uma pasta ~/.goodsync na máquina Linux.
  4. Colocou o arquivo jobs.tix nessa pasta.
  5. Este é um NOVO PASSO que tive que descobrir sozinho: RENOMEU o arquivo jobs.tix para jobs-groups-options.tix - isso permitiu que toda a configuração fosse usada.
  6. Aplicamos as seguintes alterações, conforme mostrado pela saída diff do arquivo jobs.tix do Windows original:
    $ diff ~/Downloads/jobs.tix ~/.goodsync/jobs-groups-options.tix
    51c51
    <     Url = "file://"
    –––
    >     Url = "file:///home/tomh/onedrive"
    54c54
    <   Url = "file:///~tomh-a/od"
    –––
    >   Url = "file:///home/tomh/onedrive"
    68c68
    <  } Bookmarks = { }   TimeStamp = 013061702176
    –––
    >  } Bookmarks = { }   TimeStamp = 013061705503
    84c84
    <     Url = "file:///~tomh-a/od"
    –––
    >     Url = "file:///home/tomh/onedrive"
    87c87
    <   AcctUrl = "file:///~tomh-a/od"
    –––
    >   AcctUrl = "file:///home/tomh/onedrive"
    
    Onde tomh-a é meu nome de usuário do Windows, od era minha pasta local do Windows OneDrive, tomh é meu nome de usuário do Linux e onedrive é minha pasta local do Linux OneDrive. Você pode ignorar com segurança as linhas TimeStamp , deixei-as apenas completas. Observe que essa saída diff não foi não higienizada ou alterada de nenhuma maneira, exceto para substituir determinados caracteres pelas entidades HTML correspondentes. Então, sim, todos vocês agora sabem meus nomes de usuário do Windows e Linux e pastas de sincronização do OneDrive. Não consigo ver como isso compromete minha segurança e aumenta as chances de que ela seja isenta de erros.
  7. Uma coisa obscura que eu mudei para que funcionasse: Você encontrará essas duas linhas no arquivo:
    Side2 = <SideOptions>
    Conn = <Connect>
    Alterei a segunda linha da seguinte forma:
    Side2 = <SideOptions>
    Dir = <Connect>
    e imediatamente começou a funcionar. Disclaimer: Depois que eu corri a sincronização (próxima etapa) Goodsync mudou a linha de volta para Conn = <Connect> . Então eu posso estar errado. Talvez eu pudesse ter deixado como estava (e é de novo). Mas essa é a última mudança que fiz antes de começar a funcionar. É inteiramente possível que eu mudei outra coisa ao mesmo tempo que fez funcionar. Mas pelo menos fazer essa mudança não quebrou isso para mim:)
  8. Execute a sincronização com
    gsync sync "Onedrive"
    substituindo "Onedrive" pelo que aparecer nas linhas que se parecem com:
    Jobs = { <Job>
    Name = "Onedrive"

Acredito que o requisito da API v2.0 de usar o OAuth tornou impossível simplesmente pegar o arquivo jobs-groups-options.tix de outra pessoa e fazê-lo funcionar simplesmente usando o Linux. Isto é, até que eles decidam fazer uma versão da GUI para Linux - ou pelo menos adicionar o código OAuth que inicia seu navegador para estabelecer a autorização.

    
por Tom H 14.03.2017 / 19:10
1

Eu me deparei com o mesmo problema hoje. O que funcionou para mim no final, foi baixar e usar o GoodSync GUI em uma máquina Windows e transferir a configuração final para a minha máquina Linux.

No Windows, configurei meu Business OneDrive seguindo estas instruções . Em seguida, usei a função "exportar trabalhos selecionados" da GUI (clique com o botão direito do mouse no nome do trabalho) para exportar um arquivo jobs.tix . Este é o arquivo de configuração que você precisa.

No Ubuntu, cole o arquivo jobs.tix em ~/.goodsync/ e edite-o em um editor de texto para atualizar a URL do lado do cliente para a pasta apropriada em seu sistema de arquivos local. Finalmente, basta executar gsync sync [jobname] para sincronizar todos os arquivos. Isso funcionou para mim tanto a montante quanto a jusante.

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