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!