Ir para o conteúdo principal

Biblioteca para o MIN.IO

Data:

Autores:

  • Data de elaboração25/05/21

    2021
    Responsável pelo estudoVinicius da Rosa Pereira
    Equipe do estudoACDC, Vinicius da Rosa Pereira,Lucas da Silva AndradeAndrade, Elias Braga
    AlvoRegulariza Já
    Origem

    o que originou o estudo?

    • Reparo: Mudança de alterar a tecnologia de Storage.
    ObjetivoEstudar uma biblioteca que possui um conjunto de ferramentas para a integração com o min.io.
    Observaçõesobservações gerais a respeito do estudo técnico

    GLOSSÁRIO:

    Storage - Armazenamento

    Messaging - Mensagens

    AWS - Amazon Web Services

    1. Objetivo

    Estudar uma biblioteca que possui um conjunto de ferramentas para a integração com o min.io.

     

    2.1. Introdução

    Visto que o trabalho com o Min.io é muito repetitivo como por exemplo, possui muita implementação de código, faz-se necessário uma biblioteca para a abstração.

    3.2. Desenvolvimento

     As soluções encontradas foram baseadas em sua documentação e atualização durante o tempo, as soluções foram:

    • Storage.Net
    • GeekLearning.Storage

    3.2.1 Storage.Net

    Ele possui uma interface genérica para múltiplos provedores, também implementa versões da memória e no disco de todas as abstrações;

    Além disso, fornece alternativas síncronas e assíncronas de todos os métodos e como implementá-las da melhor forma possível.

    Ele define dois  tipos diferentes de storage:

    • Blob Storage é usado para armazenar arquivos arbitrários de qualquer tamanho, que não possuem nenhuma estrutura. Os dados são essencialmente um arquivo binário; e
    • Messaging é um mecanismo assíncrono para enviar e receber mensagens entre sistemas desconectados.

    A partir das definições e da sugestão da biblioteca, a melhor implementação seria por blob storage.


    Exemplo de conexão:


    Exemplo de escrita e leitura:


    3.2.2 GeekLearning.Storage

    Esta biblioteca abstrai o armazenamento de dados físicos de uma maneira que permite a comutação de forma transparente do provedor subjacente por configuração.

    Características:

    • Liste arquivos, com suporte a globbing;
    • Ler, Escrever, Excluir arquivos; e
    • URL de arquivo público.

    Suporte a azure, armazenamento de arquivo, não possuem suporte nativo a AWS;


    Exemplo de conexão:

    Exemplo de leitura, escrita e deleção:

    3.2.3 Pontos fortes

    Fácil implementação de upload de arquivos no storage, possibilitando um desenvolvimento mais ágil, otimizando, assim, a implementação. Além disso, está elencado a performance do mesmo, com sua disponibilidade de dados.

    3.2.4 Impedimentos e possíveis impedimentos

    As bibliotecas não possuem um trabalho nativo com a AWS, nem com o Min.io, podendo ter instabilidades na execução. Além da atualização e suporte a biblioteca, que está um pouco defasada.

     

    4.3. Conclusão


    Após estudos, levando em consideração os pontos fortes e fracos, e considerando primeiramente a estabilidade das bibliotecas, cabe considerar o não uso de ambas as bibliotecas.

     

    5.4. Referências


    [GeekLearning.Storage]: 

    Dotnet Core Storage, cloud or file system storage made easy (geeklearning.io)

    geeklearningio/gl-dotnet-storage: .NET Core Storage abstractions with FileSystem and Azure providers (github.com)

     

    [Storage.Net]:

    aloneguid/storage: 💿 Storage abstractions with implementations for .NET/.NET Standard (github.com)