Como sincronizar o OneDrive Business / Office 365 no Linux?
24
O Microsoft OneDrive Business / Office 365 Pro oferece 1 TB de armazenamento em nuvem, mas infelizmente nunca houve um método para sincronizá-lo no Linux.
Bem-vindo ao Ask Ubuntu ! Somos um site de perguntas e respostas, não um fórum. Atualmente, você tem uma pergunta e uma resposta na seção de perguntas designadas. Por favor edite seu post para remover a resposta e pós que, em resposta a seção abaixo (deve haver um botão na parte inferior da página). Obrigado!
Atualmente, o onedrive-d experimental é um programa de código aberto que pode sincronizar apenas contas pessoais do OneDrive, pois não aceita links do Microsoft Sharepoint. Aqui está um método para sincronizar o OneDrive Business / Office 365 usando o GoodSync para Linux , que é gratuito para uso pessoal.
Instale a versão adequada na sua máquina Linux, por exemplo:
./goodsync-linux-x86_64-release.run
Resposta pelo n o tanto para configuração GoodSync Connect e GsServer Web UI.
Abra o OneDrive em um navegador da web. selecione "Voltar ao Classic OneDrive" no lado inferior direito.
O endereço da web no seu navegador agora se parece com:
https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspxe com base nele obter o seu link de sincronização que será office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
Crie um novo arquivo na subpasta .goodsync em sua casa:
gedit ~/.goodsync/jobs.tix
Digite o seguinte código no arquivo e salve-o:
<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>
Inicie o processo de sincronização:
gsync sync "OneDrive_Sync"
Nesta etapa, o seu navegador abrirá a página do OneDrive / Office 365 e solicitará sua autorização para permitir que o goodsync acesse sua conta. Depois de inserir suas credenciais, a sincronização será iniciada.
Limitações: A Microsoft não permite solicitações de URL com mais de 270 caracteres e, portanto, o GoodSync NÃO PODE sincronizar arquivos com nomes de caminho longos.
Meu navegador não abre a página de autorização na etapa 7. Alguma idéia de como fazê-lo manualmente?
-
3
Meu navegador não está aberto para login também
Haha TTpro
2
Sistema de arquivos no office365: /.../ Documents foi substituído pela nova API do OneDrive V2. Clique em Procurar botão para Re-navegar até a pasta sync onedrive, como New onedrive requer autenticação baseada em navegador (OAuth2)
Ferroao
6
Ubuntu 18.04 e posterior
Há um cliente OneDrive nos repositórios padrão do Ubuntu no Ubuntu 18.04 e posterior. O OneDrive é o sistema de armazenamento em nuvem da Microsoft. Este pacote fornece o cliente de linha de comando especializado em sincronização com o armazenamento em nuvem do OneDrive.
Instale-o com:
sudo apt install onedrive
Na primeira execução, solicita que você se autentique com um link. Após a autenticação, você pode ativar o deamon com systemctl --user enable onedrivee depois systemctl --user start onedrive. Mais explicações podem ser encontradas na página de manual man onedrive. É muito fácil de configurar e leva apenas cerca de cinco minutos.
Embora a onedrivedferramenta original e comumente usada pelo xybu ainda não suporte o OneDrive for Business, mas apenas o OneDrives pessoal. no entanto, existe uma bifurcação deste projeto no GitHub por derrix060 que possui uma implementação de alguma forma funcionando (mas ainda com erros) para o cliente Business.
Aviso: Quando você usa esse método, é altamente recomendável verificar sempre se os arquivos foram sincronizados corretamente, verificando-os on-line em https://www.office.com e / ou usar meu script de wrapper mostrado no final desta página para pelo menos ser informado de quaisquer erros usando as notificações da área de trabalho!
Às vezes, o onedrived parece falhar ao captar algumas alterações ou carregá-las corretamente, deixando o OneDrive em um estado (parcialmente) não sincronizado. Também pode acontecer que ele gere conflitos de mesclagem por algum motivo e renomeie seus arquivos localmente, acrescentando o nome do host entre parênteses e, opcionalmente, um número. Infelizmente não há notificação sobre erros, mas você pode ver as entradas no seu arquivo de log.
Se isso acontecer, você pode tentar sincronizar os arquivos respectivos novamente, por exemplo, tocando neles ou renomeando-os ou a pasta em que estão.
Dica: Parece que a biblioteca onedrived geralmente tem problemas, especialmente com arquivos que foram salvos diretamente na raiz do OneDrive. Provavelmente, é melhor colocar todos os arquivos em subdiretórios em vez de jogá-los diretamente na pasta do OneDrive.
Embora pareça estúpido, também notei que parece causar menos problemas para carregar arquivos através do cliente Web OneDrive e esperar até que sejam sincronizados de volta à sua pasta local (o que pode levar alguns minutos) do que para criar ou copiar / movê-los localmente. Se isso é prático ou totalmente anula, o objetivo do OneDrive depende de sua própria decisão ...
Consulte o arquivo leia-me do projeto para obter instruções completas de instalação, mas aqui está um breve resumo:
Instalação
Verifique se você não tem outra versão do onedrived(ou onedrive-d) instalada.
Faça o download do ngrokcliente mais recente para Linux no site oficial em https://ngrok.com/download . O ngrok-clientpacote dos repositórios do Ubuntu é muito antigo e não atende aos requisitos.
Descompacte o ngrok-stable-linux-amd64.ziparquivo baixado . Ele contém um único ngrokbinário, que você deve colocar em um local no seu $PATH, por exemplo, no /usr/local/bin/.
A inscrição no ngrok provavelmente não é necessária.
Instale o onedrivedaplicativo Python3 no GitHub usando pip3:
Opcionalmente, configure um local do arquivo de log para onedrived, onde você poderá verificar problemas se algo não funcionar corretamente, por exemplo:
onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
Configuração da conta e configuração da unidade
Depois que a instalação foi bem-sucedida, você deve configurar sua conta e unidade (s):
Adicione sua conta do OneDrive for Business usando o modo interativo executando:
onedrived-pref account add -b
O assistente interativo solicitará que você duas vezes abra um link no seu navegador, onde será necessário autorizar o aplicativo com sua conta do Microsoft Business.
Ele solicitará que você cole o URL para o qual você é redirecionado depois de confirmar a autorização novamente no assistente interativo. Por favor, faça o que foi dito e siga as instruções fornecidas pelo comando.
Verifique se a conta foi adicionada com sucesso, verificando a saída do comando abaixo. Deve ser semelhante e listar a conta com a qual você está conectado:
$ 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
Configure suas unidades no modo de comando interativo executando:
onedrived-pref drive set
Você verá uma lista de todas as suas unidades e será solicitado a inserir o número da linha da unidade que deseja adicionar à sua configuração local.
Você precisa especificar um diretório local que deseja usar como pasta raiz para sincronizar com sua unidade. Você pode simplesmente clicar Entere ele usará o padrão ~/OneDrive. Se o caminho não existir, ele será criado. O mesmo para o caminho para o arquivo ignorar que você deseja usar, basta clicar Entere ele usará o padrão ~/.config/onedrived/ignore_v2.txte criará, se necessário.
Verifique a saída do comando abaixo para exibir as informações sobre todas as unidades disponíveis e configuradas. Ele deve mostrar a unidade que você acabou de configurar com as configurações corretas sob o título Drives that have been set up:
onedrived-pref drive list
Ativando o daemon
Agora que sua unidade está configurada, você precisa tentar iniciar o onedriveddaemon. Eu recomendo iniciá-lo no modo de depuração primeiro, caso haja algum problema que você perderia. Isso começará onedrivedem primeiro plano:
onedrived start --debug
Se tudo estiver correto e o comando não travar e sair, tente colocar alguns arquivos na pasta local do OneDrive e verifique se ele é sincronizado. Provavelmente, você poderá verificar isso visitando o aplicativo Web do OneDrive em https://www.office.com e verificando se os arquivos adicionados localmente estão aparecendo lá.
Você pode sair do onedrivedprocesso no seu terminal novamente pressionando Ctrl+ C.
Para iniciar onedrivednormalmente, como um daemon em segundo plano, execute-o com:
onedrived start
Provavelmente, você deve adicionar este comando aos seus Aplicativos de Inicialização, para que seja iniciado automaticamente sempre que efetuar login. Consulte Como iniciar aplicativos automaticamente no login? por isso.
Wrapper para notificações de erro
Se você deseja receber notificações da área de trabalho sempre que onedrivedregistrar um erro (por exemplo, falha na sincronização de arquivos), aqui está um script de wrapper que analisa o arquivo de log em tempo real e usa o envio de notificação para exibi-lo.
Você pode iniciar o script do wrapper sem argumentos (ou colocá-lo em seus aplicativos de inicialização automática) em vez do onedrived startcomando
Ainda recebo a mensagem "Falha ao autorizar onedrived: interação_requirida". depois de inserir o segundo link para autenticar a conta ODfB. Alguma idéia de por que isso pode acontecer?
Jimakos
@ Jimakos Desculpe, nunca encontrei essa mensagem. Infelizmente não faço ideia.
Aqui está o meu exemplo para configurar um novo controle remoto onedrive1com o rclone 1.48.0 (no 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
O URL da unidade 0 termina com /ElementinnerHTMLe não contém arquivos no meu caso.
Respostas:
Atualmente, o onedrive-d experimental é um programa de código aberto que pode sincronizar apenas contas pessoais do OneDrive, pois não aceita links do Microsoft Sharepoint. Aqui está um método para sincronizar o OneDrive Business / Office 365 usando o GoodSync para Linux , que é gratuito para uso pessoal.
Instale a versão adequada na sua máquina Linux, por exemplo:
Resposta pelo n o tanto para configuração GoodSync Connect e GsServer Web UI.
https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspx
e com base nele obter o seu link de sincronização que seráoffice365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents
.Crie um novo arquivo na subpasta .goodsync em sua casa:
Digite o seguinte código no arquivo e salve-o:
Inicie o processo de sincronização:
Nesta etapa, o seu navegador abrirá a página do OneDrive / Office 365 e solicitará sua autorização para permitir que o goodsync acesse sua conta. Depois de inserir suas credenciais, a sincronização será iniciada.
Limitações: A Microsoft não permite solicitações de URL com mais de 270 caracteres e, portanto, o GoodSync NÃO PODE sincronizar arquivos com nomes de caminho longos.
Apreciar!
fonte
Ubuntu 18.04 e posterior
Há um cliente OneDrive nos repositórios padrão do Ubuntu no Ubuntu 18.04 e posterior. O OneDrive é o sistema de armazenamento em nuvem da Microsoft. Este pacote fornece o cliente de linha de comando especializado em sincronização com o armazenamento em nuvem do OneDrive.
Instale-o com:
Na primeira execução, solicita que você se autentique com um link. Após a autenticação, você pode ativar o deamon com
systemctl --user enable onedrive
e depoissystemctl --user start onedrive
. Mais explicações podem ser encontradas na página de manualman onedrive
. É muito fácil de configurar e leva apenas cerca de cinco minutos.fonte
Embora a
onedrived
ferramenta original e comumente usada pelo xybu ainda não suporte o OneDrive for Business, mas apenas o OneDrives pessoal. no entanto, existe uma bifurcação deste projeto no GitHub por derrix060 que possui uma implementação de alguma forma funcionando (mas ainda com erros) para o cliente Business.Consulte o arquivo leia-me do projeto para obter instruções completas de instalação, mas aqui está um breve resumo:
Instalação
Verifique se você não tem outra versão do
onedrived
(ouonedrive-d
) instalada.Instale pacotes de dependência:
Faça o download do
ngrok
cliente mais recente para Linux no site oficial em https://ngrok.com/download . Ongrok-client
pacote dos repositórios do Ubuntu é muito antigo e não atende aos requisitos.Descompacte o
ngrok-stable-linux-amd64.zip
arquivo baixado . Ele contém um únicongrok
binário, que você deve colocar em um local no seu$PATH
, por exemplo, no/usr/local/bin/
.A inscrição no ngrok provavelmente não é necessária.
Instale o
onedrived
aplicativo Python3 no GitHub usandopip3
:Opcionalmente, configure um local do arquivo de log para
onedrived
, onde você poderá verificar problemas se algo não funcionar corretamente, por exemplo:Configuração da conta e configuração da unidade
Depois que a instalação foi bem-sucedida, você deve configurar sua conta e unidade (s):
Adicione sua conta do OneDrive for Business usando o modo interativo executando:
O assistente interativo solicitará que você duas vezes abra um link no seu navegador, onde será necessário autorizar o aplicativo com sua conta do Microsoft Business.
Ele solicitará que você cole o URL para o qual você é redirecionado depois de confirmar a autorização novamente no assistente interativo. Por favor, faça o que foi dito e siga as instruções fornecidas pelo comando.
Verifique se a conta foi adicionada com sucesso, verificando a saída do comando abaixo. Deve ser semelhante e listar a conta com a qual você está conectado:
Configure suas unidades no modo de comando interativo executando:
Você verá uma lista de todas as suas unidades e será solicitado a inserir o número da linha da unidade que deseja adicionar à sua configuração local.
Você precisa especificar um diretório local que deseja usar como pasta raiz para sincronizar com sua unidade. Você pode simplesmente clicar Entere ele usará o padrão
~/OneDrive
. Se o caminho não existir, ele será criado. O mesmo para o caminho para o arquivo ignorar que você deseja usar, basta clicar Entere ele usará o padrão~/.config/onedrived/ignore_v2.txt
e criará, se necessário.Verifique a saída do comando abaixo para exibir as informações sobre todas as unidades disponíveis e configuradas. Ele deve mostrar a unidade que você acabou de configurar com as configurações corretas sob o título
Drives that have been set up
:Ativando o daemon
Agora que sua unidade está configurada, você precisa tentar iniciar o
onedrived
daemon. Eu recomendo iniciá-lo no modo de depuração primeiro, caso haja algum problema que você perderia. Isso começaráonedrived
em primeiro plano:Se tudo estiver correto e o comando não travar e sair, tente colocar alguns arquivos na pasta local do OneDrive e verifique se ele é sincronizado. Provavelmente, você poderá verificar isso visitando o aplicativo Web do OneDrive em https://www.office.com e verificando se os arquivos adicionados localmente estão aparecendo lá.
Você pode sair do
onedrived
processo no seu terminal novamente pressionando Ctrl+ C.Para iniciar
onedrived
normalmente, como um daemon em segundo plano, execute-o com:Provavelmente, você deve adicionar este comando aos seus Aplicativos de Inicialização, para que seja iniciado automaticamente sempre que efetuar login. Consulte Como iniciar aplicativos automaticamente no login? por isso.
Wrapper para notificações de erro
Se você deseja receber notificações da área de trabalho sempre que
onedrived
registrar um erro (por exemplo, falha na sincronização de arquivos), aqui está um script de wrapper que analisa o arquivo de log em tempo real e usa o envio de notificação para exibi-lo.Você pode iniciar o script do wrapper sem argumentos (ou colocá-lo em seus aplicativos de inicialização automática) em vez do
onedrived start
comandofonte
O rclone suporta o OneDrive for Business. Consulte um artigo Como montar o OneDrive no Linux usando o Rclone (suporta contas pessoais e empresariais) - Blog do Linux Uprising para uso.
Aqui está o meu exemplo para configurar um novo controle remoto
onedrive1
com o rclone 1.48.0 (no Fedora 30):O URL da unidade 0 termina com
/ElementinnerHTML
e não contém arquivos no meu caso.Em seguida, monte-o em um diretório local via linha de comando, navegador rclone ou GUI da web desde a v1.49 .
fonte