Uma solução de alta performance para download de arquivos grandes via SFTP, com limitação de velocidade e monitoramento em tempo real.
- Download paralelo em chunks
- Controle preciso de velocidade
- Monitoramento de performance em tempo real
- Diagnóstico completo do sistema
- Otimização de memória e I/O
- Suporte a arquivos grandes (200MB+)
- Performance otimizada para .NET 8
- .NET 8 SDK
- Visual Studio 2022 (v17.8+)
- Acesso ao servidor SFTP
HighPerformanceSftp/
└── src/
├── HighPerformanceSftp.Domain/ # Entidades e interfaces core
├── HighPerformanceSftp.Application/ # Lógica de aplicação
├── HighPerformanceSftp.Infrastructure/# Implementações e serviços
└── HighPerformanceSftp.Console/ # Aplicação console
- Clone o repositório
git clone https://github.com/arbgjr/HighPerformanceDownloader.git- Navegue até a pasta do projeto
cd HighPerformanceDownloader- Restaure os pacotes NuGet
dotnet restore- Build do projeto
dotnet build- Abra o arquivo
appsettings.jsonna pasta do projeto Console - Configure suas credenciais SFTP:
{
"SftpConfig": {
"Host": "sftp.dominio.com.br",
"Username": "seu_usuario",
"Password": "sua_senha"
}
}- Execute o projeto Console:
cd src/HighPerformanceSftp.Console
dotnet run- Para build otimizado de performance:
dotnet publish -c Release -r win-x64 --self-contained true /p:PublishAot=trueO sistema inclui diagnóstico completo para identificar gargalos:
- CPU/Memória/Disco
- Rede e Latência
- Firewall e DNS
- Configurações do Sistema
Para visualizar diagnósticos:
- Execute o download
- Verifique logs em
diagnostic_report.json - Monitore métricas em tempo real no console
O projeto utiliza várias técnicas para maximizar performance:
- Native AOT compilation
- Chunks paralelos
- Memory pooling
- I/O pipelines
- TCP optimizations
- Direct memory access
- Fork o projeto
- Crie uma branch (
git checkout -b feature/sua-feature) - Commit suas mudanças (
git commit -am 'Adicionando feature') - Push para a branch (
git push origin feature/sua-feature) - Crie um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Para reportar bugs ou solicitar features, por favor abra uma issue.