Skip to main content

Download, Cópia e Movimentação de Objetos

Normalmente, se há a necessidade de manipular objetos, sendo assim é de suma importância saber como realizar o download, cópia e movimentação de objetos. Sendo que tais operações podem ser utilizadas para realizar backups, transferir dados entre o sistema local e/ou outros buckets. Este tutorial, percorre e descreve operações de download, cópia e movimentação de objetos em um bucket de armazenamento.



Download de Objeto

Baixar um objeto específico de um bucket pode ser essencial para acessar dados ou realizar backups.

É possível realizar o download do objeto de duas formas:

  • Na lista de objetos, clique no botão de menu e em "Download".
  • Ao acessar um objeto clique em "Ações" e em "Download".

Será realizado o download da versão atual do objeto.

mgc object-storage objects download --dst="CAMINHO_PARA_SALVAR_O_OBJETO/NOME_DO_OBJETO" --src="NOME_DO_BUCKET/CAMINHO_DO_OBJETO"
aws s3 cp s3://NOME_DO_BUCKET CAMINHO_DO_OBJETO_LOCAL

Utilizando o AWS s3api:

aws s3api get-object --bucket NOME_DO_BUCKET --key NOME_DO_OBJETO CAMINHO_DO_OBJETO_LOCAL
rclone copy NOME_DO_REMOTO:mgc-bucket-1 CAMINHO_DO_OBJETO_LOCAL


Download de Todos Objetos

Transferir todos os objetos de um bucket para sua máquina local é uma tarefa comum, especialmente para backup ou análise.

mgc object-storage objects download-all NOME_DO_BUCKET CAMINHO_DA_PASTA_LOCAL
# Baixa os arquivos não presentes na pasta local
aws s3 sync s3://NOME_DO_BUCKET CAMINHO_DA_PASTA_LOCAL
rclone sync NOME_DO_REMOTO:mgc-bucket-1 CAMINHO_DA_PASTA_LOCAL


Sincronizar Diretórios

Sincronizar diretórios permite manter os arquivos de um diretório local e um bucket de armazenamento sempre atualizados. Isso é útil quando você precisa garantir que as alterações feitas localmente sejam refletidas no armazenamento na nuvem.

Atualmente, não é possível sincronizar diretórios locais com um bucket diretamente via Console. Para realizar essa operação, utilize CLI.

mgc object-storage objects sync --bucket="NOME_DO_BUCKET" --local CAMINHO_DO_DIRETÓRIO_LOCAL
aws s3 sync CAMINHO_DA_PASTA s3://NOME_DO_BUCKET
rclone copy CAMINHO_DA_PASTA NOME_DO_REMOTO:NOME_DO_BUCKET

Exemplo: Sincronizando um Diretório Local com um Bucket utilizando MGC-CLI

A sincronização de diretórios permite que você mantenha os arquivos de um diretório local e de um bucket no Magalu Cloud sempre atualizados. Neste exemplo, sincronizaremos o diretório local syncdir com o bucket syncdir-test.

Estrutura do Diretório Local

O diretório syncdir possui a seguinte estrutura:

➜ syncdir ls -R
.:
file.txt path1

./path1:
filepath1.txt path2

./path1/path2:
filepath2.txt

Comando Utilizado

O comando abaixo é utilizado para sincronizar os arquivos do diretório syncdir com o bucket syncdir-test:

mgc object-storage objects sync --src ./syncdir --dst s3://syncdir-test

Saída do Comando:

➜ ~ mgc object-storage objects sync ./syncdir s3://syncdir-test
deleted: 0
deletedFiles: ""
dst: s3://syncdir-test
hasDeleted: false
src: ./syncdir
uploaded: 3

Resultado no Bucket

Após a sincronização, os objetos foram enviados ao bucket syncdir-test. A estrutura no bucket reflete a organização do diretório local.

Listando o Bucket:

mgc object-storage objects list syncdir-test

Saída do Comando:

➜ ~ mgc object-storage objects list syncdir-test
CommonPrefixes:
- Path: path1/
Contents:
- ContentSize: 0
Key: file.txt
LastModified: 2024-12-13T14:38:42.921Z
StorageClass: STANDARD

Listando Subdiretórios:

➜ ~ mgc object-storage objects list syncdir-test/path1
CommonPrefixes:
- Path: path1/path2/
Contents:
- ContentSize: 0
Key: path1/filepath1.txt
LastModified: 2024-12-13T14:38:42.950Z
StorageClass: STANDARD
➜ ~ mgc object-storage objects list syncdir-test/path1/path2
CommonPrefixes: []
Contents:
- ContentSize: 0
Key: path1/path2/filepath2.txt
LastModified: 2024-12-13T14:38:42.856Z
StorageClass: STANDARD

A sincronização foi realizada com sucesso, garantindo que todos os arquivos e subdiretórios do diretório local syncdir fossem enviados ao bucket syncdir-test. Este processo é especialmente útil para manter backups ou sincronizar grandes volumes de dados de forma simples e eficiente



Mover Objetos entre Buckets

Quando é necessário reorganizar os objetos armazenados em seus buckets, mover arquivos entre eles pode ser uma solução prática.

Para mover um objeto entre buckets siga estes passos:

  1. Na tela de listagem de objetos, clique sobre o botão de menu do objeto que deseja mover.
  2. Selecione a opção "Mover Objeto".
  3. Na nova tela, escolha o bucket e a pasta de destino.
  • Caso você deseje criar uma nova pasta, digite o nome da pasta a ser criada. Se esse nome não corresponder a nenhuma pasta existe, ela será criada.
  • No caso de movimentação para a raíz do bucket, não selecione nenhuma pasta.
  1. Escolha a classe de armazenamento na qual o objeto movido será mantida.

Essa cópia também pode ser realizada ao acessar o objeto e clicar sobre o botão "Ações".

mgc object-storage objects move s3://BUCKET_ORIGEM/ARQUIVO_ORIGEM s3://BUCKET_DESTINO/ARQUIVO_DESTINO
aws s3 mv s3://NOME_DO_BUCKET_ORIGEM/NOME_DO_OBJETO_ORIGEM s3://NOME_DO_BUCKET_DESTINO/NOME_DO_OBJETO_DESTINO

Utilizando o AWS s3api:

# Copiar para o Bucket destino
aws s3api copy-object --bucket NOME_DO_BUCKET_DESTINO --copy-source NOME_DO_BUCKET_ORIGEM/NOME_DO_OBJETO_ORIGEM --key NOME_DO_OBJETO_DESTINO
# Apagar do Bucket original
aws s3api delete-object --bucket NOME_DO_BUCKET_ORIGEM --key NOME_DO_OBJETO_ORIGEM
rclone move NOME_DO_REMOTO:NOME_DO_BUCKET_ORIGEM/NOME_DO_OBJETO_ORIGEM NOME_DO_REMOTO:NOME_DO_BUCKET_DESTINO/NOME_DO_OBJETO_DESTINO


Mover Diretórios entre Buckets

Se você precisa reorganizar seus dados, mover diretórios entre buckets é uma solução eficaz.

Atualmente, não é possível mover diretórios entre buckets diretamente via Console. Para realizar essa operação, você deve utilizar CLI.

Atualmente, não é possível mover diretórios entre buckets diretamente via MGC-CLI.

aws s3 mv s3://NOME_DO_BUCKET_ORIGEM/my-folder/ s3://NOME_DO_BUCKET_DESTINO/new-folder/ --recursive
rclone move NOME_DO_REMOTO:NOME_DO_BUCKET_ORIGEM/my-folder/ NOME_DO_REMOTO:NOME_DO_BUCKET_DESTINO/new-folder/


Copiar Objetos entre Buckets

Copiar objetos entre buckets proporciona redundância e segurança para seus dados, sendo assim é uma operação comum.

Para copiar um objeto entre buckets siga estes passos:

  1. Na tela de listagem de objetos, clique sobre o botão de menu do objeto que deseja mover.
  2. Selecione a opção "Copiar Objeto".
  3. Na nova tela, escolha o bucket e a pasta de destino.
  • Caso você deseje criar uma nova pasta, digite o nome da pasta a ser criada. Se esse nome não corresponder a nenhuma pasta existe, ela será criada.
  • No caso de cópia para a raíz do bucket, não selecione nenhuma pasta.
  1. Escolha a classe de armazenamento na qual o objeto copiado será mantida.

Essa cópia também pode ser realizada ao acessar o objeto e clicar sobre o botão "Ações".

mgc object-storage objects copy BUCKET_ORIGEM/ARQUIVO_ORIGEM BUCKET_DESTINO
aws s3 cp s3://NOME_DO_BUCKET_ORIGEM/NOME_DO_OBJETO_ORIGEM s3://NOME_DO_BUCKET_DESTINO/NOME_DO_OBJETO_DESTINO

Utilizando o AWS s3api:

aws s3api copy-object --bucket NOME_DO_BUCKET_DESTINO --copy-source NOME_DO_BUCKET_ORIGEM/NOME_DO_OBJETO_ORIGEM --key NOME_DO_OBJETO_DESTINO
rclone copy NOME_DO_REMOTO:NO-copy-all


Copiar Todos os Objetos entre Buckets

Assim como copiar objetos, copiar todos os objetos de um bucket para outro é uma operação comum facilitando o processo de transferencias de grandes volumes de objetos.

Atualmente, não é possível copiar todos os objetos de um bucket para outro diretamente via Console. Para realizar essa operação, utilize CLI.

mgc object-storage objects copy-all NOME_DO_BUCKET_ORIGEM NOME_DO_BUCKET_DESTINO
aws s3 cp s3://NOME_DO_BUCKET_ORIGEM s3://NOME_DO_BUCKET_DESTINO --recursive

Utilizando o AWS s3api:

# Listar todos os objetos
aws s3api list-objects --bucket "$ORIGEM_BUCKET" --query "Contents[].Key" --output text | while read -r OBJECT_KEY; do
# Copiar o objeto para o bucket de destino
aws s3api copy-object --bucket "$DESTINO_BUCKET" --copy-source "$ORIGEM_BUCKET/$OBJECT_KEY" --key "$OBJECT_KEY"

rclone copy NOME_DO_REMOTO:NOME_DO_BUCKET_ORIGEM/ NOME_DO_REMOTO:NOME_DO_BUCKET_DESTINO/