Utilizando Rclone para manipular e transferir arquivos para o OCI Object Storage (Oracle Cloud)

Bom, vamos lá: Recentemente venho manipulando muitos arquivos em object storage, no famoso S3 da Amazon, no Blob storages da Azure e mais recentemente no OCI. A Oracle disponibiliza o cli deles para administrar via terminal os objetos salvos lá, o problema é que é meio complicado para tarefas comuns que costumamos fazer no dia a dia administrando os Buckets.

Por isso estou fazendo esse post, conheci o Rclone recentemente e posso falar, ele é o bichão mesmo, quebra um belho galho na administração dos buckets. Pois bem, sem mais delongas, borá lá.

Instalação e configuração

Nesse laboratório usarei o famigerado Ubuntu Server 20.04, então basta simplesmente:

apt install rclone

Para configurar você deve criar uma pasta chamada rclone no seu diretório padrão de usuário, recomendo não utilizar o root, abaixo um step by step:

mkdir -p ~/.config/rclone

Após, crie um arquivo chamado: rclone.conf

vi ~/.config/rclone/rclone.conf

E insira o seguinte conteúdo:

[mapeamento-cloud]
type = s3
provider = Other
env_auth = false
access_key_id = PEGAR CHAVE
secret_access_key = PEGAR CHAVE
region = regiao
endpoint = https://[namespacedobucket].compat.objectstorage.[regiao].oraclecloud.com

Certo, você viu que acima não temos um exemplo prático, somente um template, abaixo vamos configurar o OCI via interface web da Oracle e depois voltamos a preencher esse arquivo.

Configuração das políticas e chave do OCI Object Storage

Obviamente se autentique na interface do OCI, depois crie um bucket (nos prints abaixo simplesmente digitei o que eu queria na busca ‘Users’, ‘Bucket’, ‘Polices’, ‘Groups’):

Feito isso vamos criar um usuário para poder escrever arquivos nesse bucket:

Agora crie o grupo:

Posteriormente adicione o usuário criado ao grupo criado.

Agora vem a parte mais divertida que é a criação das políticas, as políticas são o que de fato vão permitir a manipulação dos objetos nos buckets em questão. Recomendo uma leitura nesse documento oficial da Oracle: https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/policygetstarted.htm.

Mas aqui já vou deixar as duas que usaremos, que vai permitir a leitura e escrita dos objetos no nosso bucket: ‘Coffops-Bucket”:

Allow group Coffops-Group to manage buckets in compartment Coffops-Cloud

Allow group Coffops-Group to manage objects in compartment Coffops-Cloud

As políticas acima estão bem permissivas, dá pra ajustar bastante coisa, inclusive permitir somente leitura em object específico, no link anterior tá bem detalhado o que é possível fazer utilizando políticas de segurança no OCI.

Por fim, vamos gerar uma chave secreta e uma de acesso para nosso usuário, essas, serão utilizadas no rclone.conf.

Vá na lista de usuários, procure o usuário que criou e mande faça como na imagem abaixo:

Copie a chave gerada e depois access key, agora vamos voltar ao terminal e alterar o rclone.conf, vai ficar parecido com isso:

[mapeamento-cloud]
type = s3
provider = Other
env_auth = false
access_key_id = 32fr2df24f8042jfuofn2jf9024f28e8923d921df32
secret_access_key = 55rsg24f240f402f42/fk2pf24-4f29D5gnvkjwvKJVENg2g2//HLMVmjfko=
region = sa-saopaulo-1
endpoint = https://jife1jklfm19313f91.compat.objectstorage.sa-saopaulo-1.oraclecloud.com

A região você pega na interface do oci e o namespace quando abre o bucket:

Agora, com tudo salvo, finalizamos a parte de configuração. Partiu terminal ver a tranqueira rodar.

Exemplos de uso

No seu terminal, logado com o usuário que você utilizou para criar o rclone execute o seguinte comando para listar seus diretórios remotos:

coffops-usr@coffops-server:~/.config/rclone$ rclone listremotes 
mapeamento-cloud:

Note que ele trará os mapeamentos do rclone.conf. Para listar os arquivos, você deve também passar o nome do bucket:

coffops-usr@coffops-server:~/.config/rclone$ rclone ls mapeamento-cloud:/coffops-bucket
    12222 arquivo3.png
    84498 foto-do-luiz-lindo.png

E assim vai…

Considerações finais

O Rclone tem uma vasta lista de opções que você pode utilizar para levantar info do seu bucket, tem o size, delete, copy, sync e outros… O site oficial dos caras fica aqui: https://rclone.org/.

Achou ruim? Gostou? Comenta aí que podemos melhorar. Um abraço!

Deixe um comentário

O seu endereço de e-mail não será publicado.