Rclone


O Rclone é uma ferramenta de linha de comando para sincronizar arquivos e diretórios entre uma máquina local e um armazenamento em nuvem.

Instalar Rclone
Copiar link

Você pode baixar o Rclone no site oficial e seguir os guias de instalação disponíveis lá.

No Windows, basta baixar e executar o rclone.exe pela linha de comando.

Configurar Rclone
Copiar link

Para configurar o Rclone para funcionar com nosso armazenamento de objetos S3:

  1. Crie o arquivo rclone.conf no diretório .config/rclone na raiz do seu diretório home.
  2. Adicione o seguinte conteúdo:
[hostman]
type = s3
provider = Other
env_auth = false
access_key_id = <Access_Key>
secret_access_key = <Secret_Access_Key>
endpoint = https://s3.hmstorage.net

Como alternativa, você pode usar o assistente de configuração, que criará um arquivo semelhante. Para iniciar o assistente, execute o comando:

rclone config

Abaixo está um exemplo de configuração usando o assistente.

  • No remotes found - make a new one

Digite n e, em seguida, o nome hostman.

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> hostman
  • Storage

Selecione Amazon S3 Compliant Storage Providers.

Storage> 4
  • provider

Selecione Any other S3 compatible provider.

provider> 32
  • env_auth

Digite false.

env_auth> false
  • access_key_id

Digite a Access Key nas configurações do seu bucket. Por exemplo:

access_key_id> 6RNN1MM9UZOUU5XWVQUE
  • secret_access_key

Digite a Secret Access Key nas configurações do seu bucket. Por exemplo:

secret_access_key> jX8DgkESG2uqTtQYAuT25FZhctrbz2mhyBrwUgKK
  • region

Digite us-2.

region> us-2
  • endpoint

Digite https://s3.hmstorage.net.

endpoint> https://s3.hmstorage.net
  • location_constraint

Deixe em branco e pressione Enter.

location_constraint>
  • acl

Deixe em branco e pressione Enter.

acl>
  • Edit advanced config?

Digite n.

y/n> n
  • Configuration complete

Verifique os dados e pressione y.

Options:
- type: s3
- provider: Other
- access_key_id: 6RNN1MM9UZOUU5XWVQUE
- secret_access_key: jX8DgkESG2uqTtQYAuT25FZhctrbz2mhyBrwUgKK
- region: us-2
- endpoint: https://s3.hmstorage.net

Keep this "hostman" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
  • Current remotes

Digite q para sair.

Current remotes
Name                 Type
====                 ====
hostman2             s3

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

Exemplos de uso
Copiar link

Para ver a lista completa de comandos compatíveis, consulte a documentação do Rclone.

O nome do armazenamento especificado no arquivo de configuração rclone.conf deve ser usado como nome do host. No exemplo anterior, configuramos um armazenamento chamado hostman.

Ver a lista de buckets
Copiar link

rclone lsd <host_name>:

Por exemplo:

rclone lsd hostman:
       -1 2021-12-10 11:34:51     -1 1d65c254-17ab-4b22-b262-1111fc006937
       -1 2022-01-13 10:05:47     -1 3b24945b-d373-4713-89ec-3dece346c7b3
       -1 2022-01-14 12:31:36     -1 bbf30ad7-8872-40fc-8d41-54537d894b7f

Listar arquivos em um bucket
Copiar link

rclone ls <host_name>:<bucket_name>

Por exemplo:

rclone ls hostman:3b24945b-d373-4713-89ec-3dece346c7b3
    13 test.txt
    13 test1.txt

Enviar um arquivo para um bucket
Copiar link

rclone -P copy <file_name> <host_name>:<bucket_name>

Por exemplo:

rclone -P copy test5.txt hostman:3b24945b-d373-4713-89ec-3dece346c7b3

Excluir um arquivo de um bucket
Copiar link

rclone delete <host_name>:<bucket_name>/<file_name>

Por exemplo:

rclone delete hostman:3b24945b-d373-4713-89ec-3dece346c7b3/test5.txt

Copiar arquivos entre buckets
Copiar link

rclone copyto -vP --log-file=rclone_<source_bucket_name>.log --transfers=256 <source_host_name>:<source_bucket_name> <destination_host_name>:<destination_bucket_name>

Sincronizar arquivos entre um bucket e um diretório local
Copiar link

rclone -P sync <host_name>:<bucket_name> /path/to/directory

Por exemplo:

rclone -P sync hostman:3b24945b-d373-4713-89ec-3dece346c7b3 /root/test

Para sincronizar no sentido inverso, basta inverter os argumentos.