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.
- 🖥️ Console
- MGC-CLI
- AWS-CLI
- RCLONE
Atualmente, a interface do Console não suporta a funcionalidade de download de objetos. Para realizar essa operação, utilize as ferramentas de linha de comando (CLI).
mgc object-storage objects download NOME_DO_BUCKET/CAMINHO_DO_OBJETO /CAMINHO_PARA_SALVAR_O_ARQUIVO
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-CLI
- AWS-CLI
- RCLONE
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.
- 🖥️ Console
- MGC-CLI
- AWS-CLI
- RCLONE
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 --src DIRETÓRIO_LOCAL --dst s3://NOME_DO_BUCKET
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.
- 🖥️ Console
- MGC-CLI
- AWS-CLI
- RCLONE
Atualmente, a interface do Console não suporta a funcionalidade de mover objetos entre buckets. Para realizar essa operação, utilize as ferramentas de linha de comando (CLI).
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.
- 🖥️ Console
- MGC-CLI
- AWS-CLI
- RCLONE
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.
- 🖥️ Console
- MGC-CLI
- AWS-CLI
- RCLONE
Atualmente, a interface do Console não suporta a cópia de objetos entre buckets. Para realizar essa operação, utilize as ferramentas de linha de comando (CLI).
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.
- 🖥️ Console
- MGC-CLI
- AWS-CLI
- RCLONE
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/