Blog Linux Avante

Como montar o OneDrive no Linux usando Rclone (oferece suporte a contas comerciais e pessoais)

17 de março de 2020

Microsoft OneDrive não tem um aplicativo cliente oficial para Linux, mas você pode acessar seus arquivos OneDrive de um gerenciador de arquivos no Linux graças a uma ferramenta de terceiros chamada Rclone. Este artigo explica como montar o OneDrive no Linux usando Rclone.

OneDrive montado Linux

O Microsoft OneDrive (anteriormente SkyDive) é um serviço de armazenamento em nuvem/sincronização de arquivos, parte do pacote Office Online. Ele oferece 5 GB de armazenamento gratuito, com armazenamento adicional disponível com uma assinatura paga.

Rclone é "rsync para armazenamento em nuvem". Ele pode sincronizar arquivos não apenas de seu sistema de arquivos para a nuvem (e vice-versa), mas também de um serviço de armazenamento em nuvem para outro. A ferramenta oferece suporte a uma ampla variedade de serviços de armazenamento em nuvem, do Google Drive ao Amazon Drive e S3, ownCloud, Yandex Disk e muitos outros.

Além da sincronização de arquivos sob demanda, o Rclone oferece suporte à montagem de qualquer sistema de armazenamento em nuvem compatível como um sistema de arquivos com FUSE. Embora esse recurso exista por algum tempo, ainda é considerado experimental, portanto, use-o com cuidado.

Depois de montar o Microsoft OneDrive, você poderá acessá-lo de seu gerenciador de arquivos, seja ele Nautilus (Arquivos), Nemo, Caja, etc. O comportamento é semelhante ao explicado em nosso artigo sobre o Google Drive: Montagem do Google Drive em desktops Xfce ou MATE (Ubuntu, Linux Mint). Como uma observação lateral, você também pode usar Rclone para montar o Google Drive no Linux.

Rclone suporta OneDrive for Business/Office 365. No entanto, se a organização estiver em um estado não gerenciado (não verificado pelo proprietário do domínio), você não poderá montar OneDrive usando Rclone com FUSE. No entanto, essas contas podem ser usadas com o Sharepoint. Consulte a página (https://rclone.org/webdav/#sharepoint) para obter mais informações.

Caso você queira sincronizar seus arquivos do OneDrive com uma pasta local no Linux, você pode usar OneDrive Free Client Fork que permite ter os arquivos no disco após a sincronização ser realizada, permitindo o acesso mesmo quando o computador está offline, o que não é o caso ao montar o OneDrive no Linux.

Limitações de montagem do OneDrive Rclone:

  • Todos os arquivos excluídos com Rclone são movidos para a lixeira porque a Microsoft não fornece uma API para excluir arquivos permanentemente ou esvaziar a lixeira
  • O OneDrive não faz distinção entre maiúsculas e minúsculas, então você não pode ter dois arquivos com os mesmos nomes, mas com casos diferentes na mesma pasta (exemplo: MyFile.txt e myfile.txt não podem estar na mesma pasta).
  • O OneDrive não suporta alguns caracteres que não são permitidos em nomes de arquivos em sistemas operacionais Windows. Rclone mapeia esses caracteres para equivalentes Unicode idênticos, como ? para

Além disso, renomear pastas não parece funcionar, pelo menos no meu sistema. Não tenho certeza se este é um problema ou limitação do Rclone, uma vez que o Rclone supostamente dá suporte à renomeação de pastas em geral.

Essas instruções devem funcionar não apenas em qualquer distribuição Linux (de Ubuntu, Linux Mint ou Debian, para Arch Linux, Fedora, openSUSE e assim por diante), mas também em FreeBSD e macOS. Ele até funciona no Windows, mas você precisará do WinFsp.

Monte o OneDrive como um sistema de arquivos no Linux usando Rclone

1. Instale o Rclone.

Você pode baixar os binários do Rclone aqui. Para Linux, você encontrará binários genéricos, bem como binários DEB e RPM.

Não recomendo instalar o pacote Rclone Snap (mesmo se você usar Ubuntu), porque ele não consegue encontrar o executável fusermount, mesmo se estiver instalado com --classic. Ao usar o pacote Snap, você obterá um erro semelhante ao abaixo, ao tentar montar um serviço de armazenamento em nuvem compatível com Rclone:

failed to mount FUSE fs: fusermount: exec: "fusermount": executable file not found in $PATH

Aparentemente, isso foi corrigido há algum tempo, mas parece que o problema ocorre novamente.

2. Adicione um novo controle remoto do OneDrive ao Rclone. As instruções abaixo podem parecer longas, mas leva apenas alguns segundos para configurá-lo.

Para começar a adicionar o OneDrive remoto ao Rclone, use este comando para entrar no modo de configuração Rclone:

Comandos para usar no terminal

rclone config

Rclone exibirá uma lista de opções das quais você precisa selecionar a opção New remote inserindo n e pressionando a tecla Enter:

$ rclone config
Current remotes:

Name                 Type
====                 ====
mega                 mega

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> n

Em seguida, ele solicitará que você insira um nome para o novo controle remoto. Digite o nome que deseja usar (estou usando onedrive como nome nestas instruções):

Comandos para usar no terminal

name> onedrive

Depois de pressionar a tecla Enter, uma lista de serviços de armazenamento em nuvem com suporte é exibida. Você precisa selecionar a opção Microsoft OneDrive inserindo seu número correspondente (19 agora, mas pode mudar no futuro, à medida que mais serviços de armazenamento em nuvem são adicionados ao Rclone):

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
 1 / A stackable unification remote, which can appear to merge the contents of several remotes
   \ "union"
 2 / Alias for a existing remote
   \ "alias"
 3 / Amazon Drive
   \ "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
   \ "s3"
 5 / Backblaze B2
   \ "b2"
 6 / Box
   \ "box"
 7 / Cache a remote
   \ "cache"
 8 / Dropbox
   \ "dropbox"
 9 / Encrypt/Decrypt a remote
   \ "crypt"
10 / FTP Connection
   \ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
12 / Google Drive
   \ "drive"
13 / Hubic
   \ "hubic"
14 / JottaCloud
   \ "jottacloud"
15 / Koofr
   \ "koofr"
16 / Local Disk
   \ "local"
17 / Mega
   \ "mega"
18 / Microsoft Azure Blob Storage
   \ "azureblob"
19 / Microsoft OneDrive
   \ "onedrive"
20 / OpenDrive
   \ "opendrive"
21 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
22 / Pcloud
   \ "pcloud"
23 / QingCloud Object Storage
   \ "qingstor"
24 / SSH/SFTP Connection
   \ "sftp"
25 / Webdav
   \ "webdav"
26 / Yandex Disk
   \ "yandex"
27 / http Connection
   \ "http"
Storage> 19

Para as próximas duas etapas, pressione Enter sem inserir nenhuma informação, pois não há necessidade de inserir o ID do cliente do aplicativo Microsoft ou o segredo:

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>

Em seguida, você será perguntado se deseja editar a configuração avançada. Digite "n", a menos que você tenha algumas configurações avançadas em mente:

Edit advanced config? (y/n)
y) Yes
n) No
y/n> n

Dependendo de sua configuração, você terá que inserir a configuração automática ou manual para a próxima etapa. Para a maioria dos usuários, digite y para usar a configuração automática:

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

Uma nova guia deve ser aberta no navegador da web padrão, solicitando que você conceda ao Rclone acesso à sua conta do OneDrive. Permita e você pode fechar a guia.

Rclone executa um servidor da web em sua máquina local (na porta 53682) para recuperar o token de autenticação. Pode ser necessário desbloqueá-lo temporariamente se você usar um firewall.

Agora você terá que inserir seu tipo de conta. Para a maioria dos usuários, digite 1, que corresponde a uma conta pessoal ou empresarial do OneDrive:

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

Você verá uma conta (vários em alguns casos especiais) listada, como este:

Found 1 drives, please select the one you want to use:
0:  (personal) id=f119f51f0a00000
Chose drive to use:> 0

Digite 0 e pressione Enter.

Agora você deve chegar a esta tela - digite y para continuar.

Found drive 'root' of type 'personal', URL: https://onedrive.live.com/?cid=0f119f51f000000
Is that okay?
y) Yes
n) No
y/n> y

Agora você precisa verificar se tudo está correto e salvar as configurações digitando y:

[onedrive]
type = onedrive
token = {"access_token":"GoKSt5YMioiuCWX1KOuo8QT0Fwy+Y6ZeX7M","token_type":"bearer","refresh_token":"7OMvoEAO3l*8BbhS2AMxpTbJW0Y6np9cdql!bwEdYAhJ6XBG0tnR0UK","expiry":"2018-07-26T15:15:13.696368366+03:00"}
drive_id = f119f51f0a00000
drive_type = personal
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

E, finalmente, saia da configuração Rclone digitando q:

Current remotes:

Name                 Type
====                 ====
onedrive             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

3. Crie uma nova pasta em seu sistema que será usada para montar o Microsoft OneDrive.

Sugiro criar uma pasta chamada OneDrive em seu diretório inicial. As instruções abaixo o usarão como ponto de montagem (~/OneDrive).

4. Monte o OneDrive (com Rclone usando FUSE) como um sistema de arquivos.

Para montar o Microsoft OneDrive usando Rclone, use este comando:

Comandos para usar no terminal

rclone --vfs-cache-mode writes mount onedrive: ~/OneDrive

Onde onedrive é o nome do controle remoto Rclone, seguido por : (usamos exatamente onedrive nas instruções acima para que você possa usar exatamente isso para o comando) e ~/OneDrive é a pasta onde deseja montar o OneDrive em seu sistema.

O comando mount usa --vfs-cache-mode writes porque de acordo com a documentação do Rclone, "muitos aplicativos não funcionam com seus arquivos em uma montagem Rclone" sem isso ou --vfs-cache-mode full. A seção arquivo em cache explica isso em detalhes.

Você pode parar e desmontá-lo pressionando Ctrl + C para fechar Rclone.

5. (Opcional) Monte o OneDrive na inicialização do sistema

Para montar o OneDrive na inicialização, abra Aplicativos de inicialização. Isso depende do ambiente de trabalho que você está usando, então vou listar alguns deles abaixo e como acessar os aplicativos de inicialização para adicionar uma nova entrada:

  • Gnome/Unity: pesquise Startup Applications no Dash/applications e em Startup Applications clique em Add
  • Xfce: inicie Session and Startup no menu, vá para a guia Application Autostart e clique em Add
  • MATE: inicie Startup Applications no menu e clique em Add

Depois de clicar em Add, use o seguinte:

  • Nome: Rclone OneDrive Mount
  • Comando: sh -c "rclone --vfs-cache-mode writes mount onedrive: ~/OneDrive"

Existem outras maneiras de montar o OneDrive automaticamente, como adicionar uma linha em seu arquivo /etc/fstab, usando o systemd, etc. Como ponto de partida, você pode usar os exemplos do google-drive-ocamlfuse, pois eles também devem funcionar para Rclone.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.