Guia completo: Conectando a um bucket da Oracle usando Boto3 e Python

Aprenda a fazer upload de arquivos para um bucket da Oracle utilizando Python e a biblioteca boto3, nessa aula você aprende a criar um bucket, criar um token, fazer um upload de um arquivo local e criar um objeto vindo de um formulário.

335 | Luis Oliveira | 11.05.24 21:05 | Tutoriais

#Oracle #Boto3 #Python #AWS #Tutorial #ConexãoBucket #CloudComputing #DesenvolvimentoWeb #ArmazenamentoEmNuvem

🚀 Guia completo: Conectando a um bucket da Oracle usando Boto3 e Python

 

🧐Caso você não queira assistir o video siga os passos abaixo

Criando um Bucket na oracle 

  • Acesse https://cloud.oracle.com/object-storage/buckets
  • Verifique se o seu compartimento está selecionado no menu lateral esquerdo
  • Se não estiver selecionado selecione o compartimento desejado
  • Clique em Criar bucket
  • Digite o nome do bucket, e clique em Criar

 

  • Com o Bucket criado clique no bucket
  • Clique em Alterar Visibilidade e coloque publico se você quer que ele possa ser usado pelo publico
  • Anote o Namespace 

 

 

Criando o Token de usuario

  • No menu superior direito, Perfil selecione Defininições de usuário 

 

  • No menu lateral esquerdo clique em Chaves Secretas de Cliente
  • Clique em Gerar Chave Secreta, Anote a senha dessa chave gerada ela não vai aparecer novamente
  • Apos fechar a janela Clique sobre a chave gerada e copie a Chave gerada e anote tambem

Iniciando o codigo

Estamos utilizando a versão 3.10 do python3

  • Crie uma pasta para a aula
  • Instale a virual env
python3 -m venv venv
  • Ative a virtal env
source venv/bin/activate

 

  • Instale a bilbioteca boto3
pip3 install boto3

 

  • Crie um arquivo chamado main.py
  • Abra o arquivo utilizando sua IDE favorita
  • Importe as bibliotecas
import os
import boto3

 

  • Inicie a configuração do S3 no modelo abaixo
# Conexão S3

s3_connection = boto3.client('s3',
                             aws_access_key_id = aws_access_key_id',
                             aws_secret_access_key = 'aws_secret_access_key ',
                             endpoint_url = 'https://grlxsrmxhowy.compat.objectstorage.sa-saopaulo-1.oraclecloud.com')

 

  • O Url é composto por 'https://{NameSpace}.compat.objectstorage.{Região}.oraclecloud.com'
  • Agora uma decisão deve ser tomada, nesse exemplo podemos Criar um objeto no bucket ou fazer o upload, primeiro vamos fazer o upload de um arquivo existente
  • Digamos que temos um arquivo chamado teste.txt dentro da pasta e queremos subir ele pro bucket
  • Vamos ter que criar uma variavel para o nome do bucket
  • O path do local do arquivo na pasta
  • O nome do arquivo dentro do bucket
# Mome do bucket

nome_do_bucket = 'aula-oracle'


# Salvar arquivo local

arquivo = 'teste.txt'

nome_do_arquivo_no_bucket = 'test-upload-local.txt'

# Upload

try:
    s3_connection.upload_file(arquivo,nome_do_bucket, nome_do_arquivo_no_bucket)
    print('Upload de arquivo local efetuado com sucesso!')
except Exception as e:
    print(f"Erro no upload: {e}")

 

  • Pronto esse codigo sobe seu arquivo salvo local para o bucket.

Agora temos o seguinte problema e se o arquivo vier de um FORM html?

  • Nesse caso precisamos ler o arquivo antes e utiliar o metodo put_object, segue o exemplo
  • Quando utilizando por exemplo flask o input com name imagem e tipo file do front é capturado assim request.files['atributo_name_do_input'] e para ler ele você acrescenta .read() na frente, no nosso exmeplo vamos ler nosso arquivo local mesmo e subir ele para o bucket em bytes.
# Lendo o arquivo local

with open(arquivo, 'rb') as file:
    dados_arquivo = file.read()


nome_do_arquivo_no_bucket = 'test-upload-form.txt'

try:
    s3_connection.put_object(Bucket=nome_do_bucket, Key=nome_do_arquivo_no_bucket, Body=dados_arquivo)
    print('Upload de arquivo form efetuado com sucesso!')
except Exception as e:
    print(f"Erro no upload: {e}")

 

  • Apos subir o arquivo se seu bucket é publico você pode ir no bucket e clicar nos 3 pontos na frente do arquivo e ir em Exibir Detalhes do Objeto e la vai ter a url do seu arquivo

Gostou do tutorial? 👍Curta nosso video no youtube para ajudar e compartilhe com os amigos