Python Lib para Oracle Cloud Object Storage Classic

Você gosta de trabalhar com APIs REST? Você conhece o Oracle Cloud Infrastructure Object Storage Classic? Existem muitas APIs REST que você pode usar dentro do seu aplicativo para se integrar ao Oracle Cloud Infrastructure Object Storage Classic. Além do Object Storage Classic, todas as soluções Oracle Cloud possuem APIs REST!

Neste post, você aprenderá a usar o Oracle Public Cloud (OPC) Python Lib que eu criei usando as APIs REST de Standard Storage do Oracle Cloud Infrastructure Object Storage Classic para facilitar o desenvolvimento em Python com a Oracle Cloud.

Baixe a versão mais recente da OPC Lib aqui: https://github.com/waslleysouza/opc_ocic.git.

Eu fiz algumas modificações na aplicação Face Recognition (Reconhecimento Facial na Oracle Cloud) para demonstrar como usar o meu OPC Lib.

Eu adicionei a função “update_known_faces” para baixar todas as imagens do contêiner “uploads” na nuvem.

def update_known_faces():
    print("Getting known faces from cloud container...")
    _, files = opc_storage.show_container_details_and_list_objects(UPLOAD_FOLDER)

    for filename in files:
        print("Getting file " + filename + "...")
        _, file = opc_storage.get_object_content_and_metadata(UPLOAD_FOLDER, filename)
        im = Image.open(BytesIO(file))
        im.save(os.path.join(UPLOAD_FOLDER, filename))

Modifiquei a função “upload_file” para carregar novas imagens para o contêiner “uploads” na nuvem.

# Upload to cloud container
image_bytes = pil_image.tobytes(get_content_type(file), 'RGB')
opc_storage.create_or_replace_object(UPLOAD_FOLDER, filename, image_bytes)

Eu modifiquei a função “main” para instanciar o OPC Lib, para criar o contêiner “uploads” na nuvem, e fazer o download de todas as imagens do contêiner “uploads” na nuvem para a pasta “uploads” da aplicação.

if __name__ == "__main__":
    opc_storage = opc.Storage("my-username", "my-password", "my-identity-domain")
    opc_storage.create_container(UPLOAD_FOLDER)

    update_known_faces()
    cache_known_faces()

    app.run(host='0.0.0.0', port=os.environ.get('PORT', 5000))

Quando você inicia sua aplicação pela primeira vez, o contêiner “uploads” é criado na nuvem.

Tente carregar uma nova imagem.

Sua imagem será carregada para o contêiner “uploads” na nuvem.

Vá para a pasta “uploads” da sua aplicação e remova todas as suas imagens.

Pare e inicie novamente a sua aplicação.
Quando você inicia sua aplicação pela segunda vez, todas as imagens do contêiner “uploads” na nuvem serão baixadas para atualizar a pasta “uploads” da aplicação.

Divirta-se!

Autor: Waslley Souza

Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle WebCenter Portal, Oracle ADF e Java.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *