One place for hosting & domains

      Rclone

      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:

      • sudo apt update
      • sudo apt install unzip

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

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

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

      • unzip rclone*
      • 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:

      • 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:

      • sudo mkdir -p /usr/local/share/man/man1
      • 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:

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

      • mkdir -p ~/.config/rclone
      • 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:

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

      • unzip -a rclone*
      • 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:

      • sudo mkdir -p /usr/local/bin
      • sudo cp rclone /usr/local/bin

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

      • mkdir -p ~/.config/rclone
      • 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:

      • cd "%HOMEPATH%Downloadsrclone*rclone*"

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

      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:

      • mkdir "%HOMEPATH%.configrclone"
      • notepad "%HOMEPATH%.configrclonerclone.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:

      • 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:

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

      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:

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

      • 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:

      • 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:

      • 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:

      • 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.



      Source link

      How To Transfer DigitalOcean Spaces Between Regions Using Rclone


      Introduction

      DigitalOcean Spaces is an object storage service designed to make it easy and cost effective to store and serve large amounts of data.

      In this guide, we will cover how to migrate data between Spaces regions, by using Rclone to transfer data between two Spaces. We will demonstrate how to install Rclone, the configuration settings needed to access multiple regions, and the commands that you can use to synchronize your files between regions and verify their integrity.

      Creating API Keys and Finding Spaces Endpoint Information

      Before we begin installing and configuring Rclone to copy our objects between Spaces, we will need some information about our DigitalOcean Spaces account. We will need a Spaces API key, and we will need to know the regions and names of our source and destination Spaces.

      Generating a DigitalOcean Spaces API Key

      To create a DigitalOcean Spaces API key, follow the “Creating an Access Key” section of our How To Create a DigitalOcean Space API Key documentation.

      Save the access key ID and the secret key. We will use them later to configure Rclone to access our account.

      Finding the Spaces S3-Compatible Endpoint

      Next, we need to find the endpoint for each Space. You can view the Space’s endpoint within the DigitalOcean Control Panel by selecting the Space and viewing the Settings tab:

      DigitalOcean Spaces endpoint

      The endpoint will always be the region you created the Space in, followed by .digitaloceanspaces.com. Make note of the endpoint for both of your Spaces. Will we use this information when creating our rclone configuration.

      Installing Rclone

      You’re now ready to install Rclone. You can do this on your local machine, or – if you are bandwidth limited – you may want to install Rclone on a Droplet located in the source or destination Spaces region.

      Visit the Downloads section of the project’s website to find binaries of the utility compiled for different platforms. Download the zipped binary that matches your computer’s operating system to get started.

      Once you have the Rclone zip file downloaded to your computer, follow the section below that matches your platform.

      Linux

      Before we can extract the archive, we will need to ensure that the unzip utility is available.

      If you are running Ubuntu or Debian, you can update the local package index and install unzip by typing:

      • sudo apt update
      • sudo apt install unzip

      If you are running CentOS or Fedora, you can install unzip by typing:

      With unzip installed, navigate to the directory where you downloaded the rclone zip file:

      Next, unzip the archive and move into the newly created directory:

      • unzip rclone*
      • cd rclone-v*

      From here, we can copy the binary to the /usr/local/bin directory so that it is available system-wide:

      • sudo cp rclone /usr/local/bin

      Next, we add the manual page to our system, so that we can easily get help on the command syntax and available options. Make sure that the local manual directory is available and then copy the rclone.1 file:

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

      Then update the man database to add the new manual page to the system:

      Finally, we can create the Rclone configuration directory and open up a configuration file:

      • mkdir -p ~/.config/rclone
      • nano ~/.config/rclone/rclone.conf

      This will open your text editor with a new blank file. Skip ahead to the section on Configuring Rclone to continue.

      macOS

      If you are running macOS, begin by navigating in the terminal to the directory where you downloaded the rclone zip file:

      Next, unzip the file and move into the newly created directory:

      • unzip -a rclone*
      • cd rclone-v*

      Next, make sure the /usr/local/bin directory is available and then copy the rclone binary to it:

      • sudo mkdir -p /usr/local/bin
      • sudo cp rclone /usr/local/bin

      Finally, we can create the configuration directory and open up a configuration file:

      • mkdir -p ~/.config/rclone
      • nano ~/.config/rclone/rclone.conf

      This will open up your text editor with a new blank file. Skip ahead to the section on Configuring Rclone to continue.

      Windows

      If you are running Windows, begin by navigating to the Downloads directory in the Windows File Explorer. Select the rclone zip file and right-click. In the context menu that appears, click Extract All…:

      Windows extract rclone zip file

      Follow the prompts to extract the files from the zip archive.

      The rclone.exe utility must be run from the command line. Open a new Command Prompt (the cmd.exe program) window by clicking the Windows button in the lower-left corner, typing cmd, and selecting Command Prompt.

      Inside, navigate to the rclone path you extracted by typing:

      • cd "%HOMEPATH%Downloadsrclone*rclone*"

      List the directory contents to verify that you are in the correct location:

      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

      You will need to be in this directory whenever you want to use the rclone.exe command.

      Note: On macOS and Linux, we run the tool by typing rclone, but on Windows, the command is called rclone.exe. Throughout the rest of this guide, we will be providing commands as rclone, so be sure to substitute rclone.exe each time when running on Windows.

      Next, we can create the configuration directory and open up a configuration file to define our S3 and Spaces credentials:

      • mkdir "%HOMEPATH%.configrclone"
      • notepad "%HOMEPATH%.configrclonerclone.conf"

      This will open up your text editor with a new blank file. Continue ahead to learn how to define your Spaces regions in the configuration file.

      Configuring Rclone

      We will configure our two DigitalOcean Spaces regions as Rclone “remotes” in the Rclone configuration file. Paste the following section in the configuration file to define the first region:

      ~/.config/rclone/rclone.conf

      [spaces-sfo2]
      type = s3
      env_auth = false
      access_key_id = your_spaces_access_key
      secret_access_key = your_spaces_secret_key
      endpoint = sfo2.digitaloceanspaces.com
      acl = private
      

      Here, we define a new rclone “remote” named spaces-sfo2. Change the region name to match the Spaces region you are configuring.

      We set the type to s3 so that rclone knows the appropriate way to interact with and manage the remote storage resource. We will define the Spaces access credentials in this configuration file, so we can set env_auth to false.

      Next, we set the access_key_id and secret_access_key variables to our Spaces access key and secret key, respectively. Be sure to change the values to the credentials associated with your account.

      We set the endpoint to the Spaces endpoint we looked up earlier.

      Finally, we set the acl to private to protect our assets until we want to share them.

      Next, make a duplicate of the configuration block you just created, then update the name and endpoint region to reflect your second region:

      ~/.config/rclone/rclone.conf

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

      The rest of the configuration should remain the same as for the first region. Save and close the file when you are finished.

      On macOS and Linux, be sure to lock down the permissions of the configuration file since our credentials are inside:

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

      On Windows, permissions are denied to non-administrative users unless explicitly granted, so we shouldn’t need to adjust access manually.

      Next, we’ll use rclone to explore our Spaces and sync data between them.

      Copying Objects from S3 to Spaces

      Now that our configuration is complete, we are ready to transfer our files.

      Begin by checking the rclone configured remotes:

      Output

      spaces-nyc3: spaces-sfo2:

      Both of the regions we defined are displayed.

      We can view the available Spaces by asking rclone to list the “directories” associated with the remotes (make sure to add the colon to the end of the remote name):

      Output

      -1 2019-09-23 13:07:54 -1 source-space

      The above output indicates that one Space, called source-space was found in the sfo2 region.

      You can repeat the procedure to view the other region:

      Output

      -1 2019-09-23 13:08:28 -1 destination-space

      To view the contents of a Space, you can use the tree command. Pass in the remote name, followed by a colon and the name of the “directory” you wish to list (the Space name):

      • 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

      When you are ready, you can copy the files between Spaces by typing:

      • rclone sync spaces-sfo2:source-space spaces-nyc3:destination-space

      Assuming everything went well, rclone will begin copying objects between the two Spaces.

      Note: If you hadn’t previously created the destination Space in the specified region, rclone will attempt to create one for you with the given name. This will fail if the name provided is already being used by another account or if the name doesn’t meet the naming requirements for DigitalOcean Spaces (lowercase letters, numbers, and dashes only).

      When the transfer is complete, you can check that the objects have transferred by viewing them with the tree subcommand:

      • 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

      For more robust verification, use the check subcommand to compare the objects in both regions:

      • 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

      This will compare the hash values of each object in both remotes. You may receive a message indicating that some hashes could not be compared. In that case, you can rerun the command with the --size-only flag (which just compares based on file size) or the --download flag (which downloads each object from both remotes to compare locally) to verify the transfer integrity.

      Conclusion

      In this guide, we’ve covered how to transfer objects between two DigitalOcean Spaces regions. We gathered API credentials and endpoint information from the Spaces service, installed and configured the rclone utility on our local computer, and then copied all objects from a source Space to a destination Space.

      The rclone client can be used for many other object storage management tasks including uploading or downloading files, mounting Spaces on the local filesystem, and creating or deleting additional Spaces. Check out the man page to learn more about the functionality the tool provides.



      Source link