Skip to main content

Library to create a file browser interface in browser using Python.

Project description

🐍 PyMyFileBrowser

Python Version License Flask

PyMyFileBrowser é um gerenciador de arquivos web poderoso e intuitivo desenvolvido em Python com Flask. Navegue, gerencie e visualize seus arquivos através de uma interface web moderna e responsiva, acessível de qualquer navegador.

✨ Características Principais

🗂️ Gerenciamento de Arquivos

  • Navegação Intuitiva: Interface limpa inspirada em gerenciadores de arquivos modernos
  • Upload de Arquivos: Suporte para upload único e múltiplo, incluindo pastas completas (drag & drop)
  • Download Inteligente: Download individual ou múltiplo com compressão automática em ZIP
  • Criação de Pastas: Crie novas pastas diretamente pela interface
  • Exclusão Segura: Remova arquivos e pastas com confirmação

🔍 Busca e Organização

  • Busca Local: Filtro rápido por nome na pasta atual
  • Busca Global: Busca avançada recursiva em todas as pastas configuradas
  • Ordenação Flexível: Ordene por nome, data ou tipo de arquivo
  • Ícones Inteligentes: Identificação visual automática por tipo de arquivo (imagens, vídeos, código, documentos, etc.)

👁️ Visualização de Arquivos

Suporte nativo para visualização de diversos formatos:

  • Imagens: JPG, PNG, GIF, BMP, SVG, WebP, ICO
  • Vídeos: MP4, WebM, OGG
  • Áudio: MP3, WAV, OGG, M4A
  • Documentos: PDF
  • Código: Python, JavaScript, HTML, CSS, JSON, XML, C/C++, Java e mais
  • Texto: TXT, MD, LOG, INI

🚀 Recursos Avançados

  • Múltiplas Raízes: Configure várias pastas raiz independentes via variável de ambiente
  • Compressão Streaming: Download de pastas grandes com streaming ZIP (sem consumir memória)
  • Seleção Múltipla: Selecione e baixe múltiplos arquivos/pastas de uma vez
  • Data de Criação: Visualize quando cada arquivo foi criado
  • Responsivo: Interface adaptável para desktop, tablet e mobile
  • Hostname Display: Identifique facilmente qual servidor você está acessando

📋 Requisitos

  • Python 3.6 ou superior
  • Flask 3.0.3
  • zipstream-new 1.1.8

📦 Instalação

Instalação via pip (Recomendado)

pip install pyzbrowser

Instalação para Desenvolvimento

# Clone o repositório
git https://github.com/ZdekPyPi/PyzBrowser.git
cd pymyfilebrowser

# Instale em modo desenvolvimento
pip install -e .

Instalação Manual

# Clone o repositório
git clone https://github.com/ZdekPyPi/PyzBrowser.git
cd pymyfilebrowser

# Instale as dependências
pip install -r requirements.txt

⚙️ Configuração

Pastas Raiz

Por padrão, o PyMyFileBrowser usa a pasta Downloads do usuário atual. Para configurar pastas personalizadas, defina a variável de ambiente PYBROWSER_ROOTS:

Windows (PowerShell)

$env:PYBROWSER_ROOTS='C:\Users\SeuUsuario\Downloads,C:\Users\SeuUsuario\Documents,D:\Projetos'

Windows (CMD)

set PYBROWSER_ROOTS=C:\Users\SeuUsuario\Downloads,C:\Users\SeuUsuario\Documents,D:\Projetos

Linux/macOS

export PYBROWSER_ROOTS='/home/usuario/Downloads,/home/usuario/Documents,/var/www/projetos'

Formato da Variável

A variável PYBROWSER_ROOTS deve conter caminhos separados por vírgula. O nome de cada pasta será extraído automaticamente do caminho.

Exemplos:

Windows:

PYBROWSER_ROOTS=C:\Users\John\Downloads,C:\Users\John\Documents,D:\Development\Projects

Linux/macOS:

PYBROWSER_ROOTS=/home/john/Downloads,/home/john/Documents,/var/www/projects

Uso com Argumento -r

Você também pode especificar uma pasta diretamente ao executar:

python -m pymyfilebrowser -r C:\MinhaPasta

ou

pymyfilebrowser -r /home/usuario/meus-arquivos

🚀 Uso

Executar como Módulo Python (Recomendado)

python -m pymyfilebrowser

Executar via Comando Instalado

pymyfilebrowser

Executar Diretamente (Desenvolvimento)

python run.py

Após iniciar, acesse em seu navegador:

http://localhost:5000

Para acessar de outros dispositivos na rede:

http://[IP-DO-SEU-PC]:5000

🛠️ Desenvolvimento

🔒 Segurança

  • Path Traversal Protection: O sistema valida todos os caminhos para evitar acesso fora das pastas raiz
  • Filename Sanitization: Nomes de arquivos são sanitizados usando secure_filename() do Werkzeug
  • Input Validation: Validação em todas as rotas POST
  • ⚠️ Aviso: Este sistema foi projetado para uso em redes locais confiáveis. NÃO exponha diretamente à internet sem autenticação adequada

🤝 Contribuindo

Contribuições são bem-vindas! Para contribuir:

  1. Faça um Fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/NovaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/NovaFeature)
  5. Abra um Pull Request

📝 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

🐛 Reportar Bugs

Encontrou um bug? Por favor, abra uma issue com:

  • Descrição do problema
  • Passos para reproduzir
  • Comportamento esperado vs atual
  • Screenshots (se aplicável)
  • Informações do sistema (OS, versão do Python)

💡 Roadmap

  • Autenticação de usuários
  • Suporte a temas (claro/escuro)
  • Editor de texto integrado
  • Visualização de mais formatos (Office, etc.)
  • Compartilhamento de links temporários
  • Upload com barra de progresso
  • Preview de thumbnails para imagens
  • Drag & drop para reorganizar arquivos

📧 Contato

Para questões, sugestões ou feedback, entre em contato através das issues do GitHub.


Desenvolvido com ❤️ e 🐍 Python

Change Log

1.0.0 (2026-02-02)

  • First Release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyzbrowser-1.0.1.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyzbrowser-1.0.1-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file pyzbrowser-1.0.1.tar.gz.

File metadata

  • Download URL: pyzbrowser-1.0.1.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyzbrowser-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c783497a1085d19688fcfc0d567ee0b2c77b345117ee9ead1e8f41cf34feab8c
MD5 f6678d8fed46646b6a32e20dd366ec8c
BLAKE2b-256 029f0d0a8e3b0de3ddd4b12886cb4a6a7180bdc8501be5c2b20f2c00d2c73d7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyzbrowser-1.0.1.tar.gz:

Publisher: deploy.yml on ZdekPyPi/PyzBrowser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyzbrowser-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pyzbrowser-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyzbrowser-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c42bbbe6e57c9be3a18b761d9ef078859de1f698f91d507968fa120f741993f
MD5 d9a91e0d93fc2eb38580073db3d9e13b
BLAKE2b-256 ca08c74cba23ea6c9d5baa234630f6bdb2684478cc701706313d30d77276b1a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyzbrowser-1.0.1-py3-none-any.whl:

Publisher: deploy.yml on ZdekPyPi/PyzBrowser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page