Skip to content

Latest commit

 

History

History
120 lines (90 loc) · 2.68 KB

File metadata and controls

120 lines (90 loc) · 2.68 KB

High Performance SFTP Downloader

Uma solução de alta performance para download de arquivos grandes via SFTP, com limitação de velocidade e monitoramento em tempo real.

Características

  • 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

Pré-requisitos

  • .NET 8 SDK
  • Visual Studio 2022 (v17.8+)
  • Acesso ao servidor SFTP

Estrutura da Solução

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

Instalação

  1. Clone o repositório
git clone https://github.com/arbgjr/HighPerformanceDownloader.git
  1. Navegue até a pasta do projeto
cd HighPerformanceDownloader
  1. Restaure os pacotes NuGet
dotnet restore
  1. Build do projeto
dotnet build

Configuração

  1. Abra o arquivo appsettings.json na pasta do projeto Console
  2. Configure suas credenciais SFTP:
{
  "SftpConfig": {
    "Host": "sftp.dominio.com.br",
    "Username": "seu_usuario",
    "Password": "sua_senha"
  }
}

Uso

  1. Execute o projeto Console:
cd src/HighPerformanceSftp.Console
dotnet run
  1. Para build otimizado de performance:
dotnet publish -c Release -r win-x64 --self-contained true /p:PublishAot=true

Diagnóstico de Performance

O 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:

  1. Execute o download
  2. Verifique logs em diagnostic_report.json
  3. Monitore métricas em tempo real no console

Otimização de Performance

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

Contribuição

  1. Fork o projeto
  2. Crie uma branch (git checkout -b feature/sua-feature)
  3. Commit suas mudanças (git commit -am 'Adicionando feature')
  4. Push para a branch (git push origin feature/sua-feature)
  5. Crie um Pull Request

Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

Suporte

Para reportar bugs ou solicitar features, por favor abra uma issue.