| Data de elaboração | 25/05/2021 |
| Responsável pelo estudo | Vinicius da Rosa Pereira |
| Equipe do estudo | ACDC, Vinicius da Rosa Pereira, Lucas da Silva Andrade, Elias Braga |
| Alvo | Regulariza Já |
| Origem | O que originou o estudo? Reparo: Mudança de alterar a tecnologia de Storage. |
| Objetivo | Estudar uma biblioteca que possui um conjunto de ferramentas para a integração com o min.io. |
| Observações | observações gerais a respeito do estudo técnico |
Storage - Armazenamento
Messaging - Mensagens
AWS - Amazon Web Services
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.
Desenvolvimento
As soluções encontradas foram baseadas em sua documentação e atualização durante o tempo, as soluções foram:
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:

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:

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.
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.
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.
[GeekLearning.Storage]:
Dotnet Core Storage, cloud or file system storage made easy (geeklearning.io)
NuGet Gallery | GeekLearning.Storage 0.8.1
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)