Tutorial

Como Transferir Spaces da DigitalOcean Entre Regiões Usando o Rclone

Published on November 14, 2019
Português
Como Transferir Spaces da DigitalOcean Entre Regiões Usando o Rclone

Introdução

O DigitalOcean Spaces é um serviço de armazenamento de objetos projetado para facilitar e reduzir o custo de armazenar e servir grandes quantidades de dados.

Neste guia, abordaremos como migrar dados entre regiões do Spaces, usando o Rclone para transferir dados entre dois Spaces. Demonstraremos como instalar o Rclone, as definições de configuração necessárias para acessar várias regiões e os comandos que você pode usar para sincronizar seus arquivos entre regiões e verificar sua integridade.

Criando Chaves de API e Localizando Informações de Endpoint do Spaces

Antes de começarmos a instalar e configurar o Rclone para copiar nossos objetos entre os Spaces, precisaremos de algumas informações sobre nossa conta no DigitalOcean Spaces. Vamos precisar de uma chave da API do Spaces e precisamos conhecer as regiões e os nomes dos nossos Spaces de origem e destino.

Gerando uma Chave de API do DigitalOcean Spaces

Para criar uma chave de API do DigitalOcean Spaces, siga a seção “Creating an Access Key” de nossa documentação em How To Create a DigitalOcean Space API Key.

Salve o ID da chave de acesso e a chave secreta. Nós os usaremos posteriormente para configurar o Rclone para acessar nossa conta.

Localizando o Endpoint Compatível com S3 do Spaces

Em seguida, precisamos encontrar o endpoint para cada Space. Você pode visualizar o endpoint do Space no Painel de controle da DigitalOcean, selecionando o Space e visualizando a guia Settings:

DigitalOcean Spaces endpoint

O endpoint sempre estará na região em que você criou o Space, seguido por .digitaloceanspaces.com. Anote o endpoint para ambos os seus Spaces. Usaremos essas informações ao criar nossa configuração rclone.

Instalando o Rclone

Agora você está pronto para instalar o Rclone. Você pode fazer isso na sua máquina local ou – se a largura de banda estiver limitada – você poderá instalar o Rclone em um Droplet localizado na região do Spaces de origem ou de destino.

Visite a seção de Downloads do site do projeto para encontrar binários do utilitário compilado para diferentes plataformas. Para começar, baixe o binário compactado que corresponde ao sistema operacional do seu computador.

Depois de baixar o arquivo zip do Rclone para o seu computador, siga a seção abaixo que corresponda à sua plataforma.

Linux

Antes de podermos extrair o arquivo, precisamos garantir que o utilitário unzip esteja disponível.

Se você estiver executando o Ubuntu ou o Debian, você pode atualizar o índice local de pacotes e instalar o unzip digitando:

  1. sudo apt update
  2. sudo apt install unzip

Se você estiver usando CentOS ou Fedora, você pode instalar o unzip digitando:

  1. sudo yum install unzip

Com o unzip instalado, navegue até o diretório onde você baixou o arquivo zip do rclone:

  1. cd ~/Downloads

Em seguida, descompacte o arquivo e vá para o diretório recém-criado:

  1. unzip rclone*
  2. cd rclone-v*

A partir daqui, podemos copiar o binário no diretório /usr/local/bin para que ele esteja disponível em todo o sistema:

  1. sudo cp rclone /usr/local/bin

Em seguida, adicionamos a página de manual ao nosso sistema, para que possamos obter facilmente ajuda na sintaxe de comando e nas opções disponíveis. Verifique se o diretório local de manual está disponível e copie o arquivo rclone.1:

  1. sudo mkdir -p /usr/local/share/man/man1
  2. sudo cp rclone.1 /usr/local/share/man/man1

Atualize o banco de dados man para adicionar a nova página de manual ao sistema:

  1. sudo mandb

Por fim, podemos criar o diretório .config do Rclone e abrir um arquivo de configuração:

  1. mkdir -p ~/.config/rclone
  2. nano ~/.config/rclone/rclone.conf

Isso abrirá seu editor de texto com um novo arquivo em branco. Avance para a seção Configurando o Rclone para prosseguir.

macOS

Se você estiver executando o macOS, comece navegando no terminal até o diretório em que você baixou o arquivo zip rclone:

  1. cd ~/Downloads

Em seguida, descompacte o arquivo e vá para o diretório recém-criado:

  1. unzip -a rclone*
  2. cd rclone-v*

Depois, certifique-se de que o diretório /usr/local/bin está disponível e então copie o binário rclone para ele:

  1. sudo mkdir -p /usr/local/bin
  2. sudo cp rclone /usr/local/bin

Por fim, podemos criar o diretório .config e abrir um arquivo de configuração:

  1. mkdir -p ~/.config/rclone
  2. nano ~/.config/rclone/rclone.conf

Isso abrirá seu editor de texto com um novo arquivo em branco. Avance para a seção Configurando o Rclone para prosseguir.

Windows

Se você estiver executando o Windows, comece navegando até o diretório Downloads no Gerenciador de Arquivos do Windows. Selecione o arquivo zip rclone e clique com o botão direito do mouse. No menu de contexto que aparece, clique em Extrair tudo…:

Windows extract rclone zip file

Siga as instruções para extrair os arquivos do arquivo zip.

O utilitário rclone.exe deve ser executado a partir da linha de comando. Abra uma nova janela Prompt de Comando (o programa cmd.exe) clicando no botão Windows no canto inferior esquerdo, digitando cmd e selecionando Prompt de Comando.

Dentro do prompt, navegue até o caminho do rclone que você extraiu digitando:

  1. cd "%HOMEPATH%\Downloads\rclone*\rclone*"

Liste o conteúdo do diretório para verificar se você está no local correto:

  1. dir
Output
10/23/2017 01:02 PM <DIR> . 10/23/2017 01:02 PM <DIR> .. 10/23/2017 01:02 PM 17 git-log.txt 10/23/2017 01:02 PM 296,086 rclone.1 10/23/2017 01:02 PM 16,840,192 rclone.exe 10/23/2017 01:02 PM 315,539 README.html 10/23/2017 01:02 PM 261,497 README.txt 5 File(s) 17,713,331 bytes 2 Dir(s) 183,296,266,240 bytes free

Você precisará estar neste diretório sempre que quiser usar o comando rclone.exe.

Nota: No macOS e no Linux, executamos a ferramenta digitando rclone, mas no Windows, o comando é chamado rclone.exe. No restante deste guia, forneceremos comandos como rclone, portanto, certifique-se de substituir o rclone.exe sempre que executar no Windows.

Em seguida, podemos criar o diretório .config e abrir um arquivo de configuração para definir nossas credenciais do S3 e do Spaces:

  1. mkdir "%HOMEPATH%\.config\rclone"
  2. notepad "%HOMEPATH%\.config\rclone\rclone.conf"

Isso abrirá seu editor de texto com um novo arquivo em branco. Continue em frente para aprender como definir suas regiões do Spaces no arquivo de configuração.

Configurando o Rclone

Vamos configurar nossas duas regiões do DigitalOcean Spaces como Rclone “remotas” no arquivo de configuração do Rclone. Cole a seção a seguir no arquivo de configuração para definir a primeira região:

~/.config/rclone/rclone.conf
[spaces-sfo2]
type = s3
env_auth = false
access_key_id = access_key_do_seu_spaces
secret_access_key = secret_key_do_seu_spaces
endpoint = sfo2.digitaloceanspaces.com
acl = private

Aqui, definimos um novo rclone “remoto” chamado spaces-sfo2. Altere o nome da região para corresponder à região do Spaces que você está configurando.

Definimos o type como s3 para que o rclone saiba a maneira apropriada de interagir e gerenciar o recurso de armazenamento remoto. Definiremos as credenciais de acesso do Spaces neste arquivo de configuração, de forma que possamos definir env_auth como false.

A seguir, definimos as variáveis access_key_id e secret_access_key como access key e secret key do nosso Spaces, respectivamente. Certifique-se de alterar os valores para as credenciais associadas à sua conta.

Definimos o endpoint como o endpoint do Spaces que vimos anteriormente.

Finalmente, definimos o acl como private para proteger nossos ativos até que desejemos compartilhá-los.

Em seguida, faça uma duplicata do bloco de configuração que você acabou de criar, então atualize o nome e a região do endpoint para refletir sua segunda região:

~/.config/rclone/rclone.conf
. . .

[spaces-nyc3]
type = s3
env_auth = false
access_key_id = access_key_do_seu_spaces
secret_access_key = secret_key_do_seu_spaces
endpoint = nyc3.digitaloceanspaces.com
acl = private

O restante da configuração deve permanecer o mesmo que para a primeira região. Salve e feche o arquivo quando terminar.

No macOS e no Linux, certifique-se de bloquear as permissões do arquivo de configuração, pois nossas credenciais estão dentro dele:

  1. chmod 600 ~/.config/rclone/rclone.conf

No Windows, as permissões são negadas a usuários não administrativos, a menos que sejam concedidas explicitamente, portanto, não precisamos ajustar o acesso manualmente.

Em seguida, usaremos o rclone para explorar nossos Spaces e sincronizar dados entre eles.

Copiando Objetos do S3 para o Spaces

Agora que nossa configuração está completa, estamos prontos para transferir nossos arquivos.

Comece verificando os remotos configurados no rclone:

  1. rclone listremotes
Output
spaces-nyc3: spaces-sfo2:

As duas regiões que definimos são exibidas.

Podemos ver os Spaces disponíveis, pedindo ao rclone para listar os “diretórios” associados aos remotos (certifique-se de adicionar dois pontos ao final do nome do remoto):

  1. rclone lsd spaces-sfo2:
Output
-1 2019-09-23 13:07:54 -1 source-space

A saída acima indica que um Space, chamado source-space foi encontrado na região sfo2.

Você pode repetir o procedimento para visualizar a outra região:

  1. rclone lsd spaces-nyc3:
Output
-1 2019-09-23 13:08:28 -1 destination-space

Para visualizar o conteúdo de um Space, você pode usar o comando tree. Passe o nome remoto, seguido por dois pontos e o nome do “diretório” que você deseja listar (o nome do Space):

  1. rclone tree spaces-sfo2:source-space
Output
/ ├── Photos │ ├── 2019.01.24-23.10.27.png │ ├── 2019.01.24-23.11.39.png │ ├── 2019.01.24-23.18.00.png │ ├── 2019.01.24-23.18.18.png │ ├── 2019.01.24-23.18.30.png │ ├── 2019.01.24-23.19.32.png │ ├── 2019.01.24-23.23.06.png │ ├── 2019.01.24-23.23.53.png │ ├── 2019.01.24-23.25.14.png │ ├── 2019.01.24-23.26.22.png │ ├── 2019.01.25-12.43.35.png │ ├── 2019.03.13-14.35.34.png │ └── 2019.03.13-14.40.52.png └── Photos.zip 1 directories, 14 files

Quando estiver pronto, você poderá copiar os arquivos entre os Spaces, digitando:

  1. rclone sync spaces-sfo2:source-space spaces-nyc3:destination-space

Assumindo que tudo correu bem, o rclone começará a copiar objetos entre os dois Spaces.

Nota: Se você não criou anteriormente o Space de destino na região especificada, o rclone tentará criar um para você com o nome dado. Isso vai falhar se o nome fornecido já estiver sendo usado por outra conta ou se o nome não atender aos requisitos de nomenclatura para o DigitalOcean Spaces (somente letras minúsculas, números e traços).

Quando a transferência estiver concluída, você pode verificar se os objetos foram transferidos visualizando-os com o subcomando tree:

  1. rclone tree spaces-nyc3:destination-space
Output
/ ├── Photos │ ├── 2019.01.24-23.10.27.png │ ├── 2019.01.24-23.11.39.png │ ├── 2019.01.24-23.18.00.png │ ├── 2019.01.24-23.18.18.png │ ├── 2019.01.24-23.18.30.png │ ├── 2019.01.24-23.19.32.png │ ├── 2019.01.24-23.23.06.png │ ├── 2019.01.24-23.23.53.png │ ├── 2019.01.24-23.25.14.png │ ├── 2019.01.24-23.26.22.png │ ├── 2019.01.25-12.43.35.png │ ├── 2019.03.13-14.35.34.png │ └── 2019.03.13-14.40.52.png └── Photos.zip 1 directories, 14 files

Para uma verificação mais robusta, use o subcomando check para comparar os objetos nas duas regiões:

  1. rclone check spaces-sfo2:source-space spaces-nyc3:destination-space
Output
2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 0 differences found 2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 14 matching files

Isso irá comparar os valores de hash de cada objeto nos dois remotos. Você pode receber uma mensagem indicando que alguns hashes não podem ser comparados. Nesse caso, você pode executar novamente o comando com a flag --size-only (que compara com base apenas no tamanho do arquivo) ou a flag --download (que baixa cada objeto de ambos os remotos para comparar localmente) para verificar a integridade da transferência.

Conclusão

Neste guia, abordamos como transferir objetos entre duas regiões do DigitalOcean Spaces. Reunimos credenciais de API e informações de endpoint do serviço Spaces, instalamos e configuramos o utilitário rclone em nosso computador local e, em seguida, copiamos todos os objetos de um Space de origem para um Space de destino.

O cliente rclone pode ser usado para muitas outras tarefas de gerenciamento de armazenamento de objetos, incluindo upload ou download de arquivos, montagem de Spaces no sistema de arquivos local e criação ou exclusão de Spaces adicionais. Confira a página de man para aprender mais sobre as funcionalidades que a ferramenta fornece.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel