- Embora uma infraestrutura centrada em S3 tenha se tornado o padrão de fato para armazenamento de arquivos, o WebDAV ainda é apresentado como uma alternativa útil em projetos pessoais ou ambientes de self-hosting
- O autor explica que se cansou da complexidade e da dependência do S3 e voltou a usar o WebDAV como um repositório de arquivos simples baseado em autenticação
- O WebDAV tem suporte nativo em várias ferramentas, como MacOS Finder, Windows Explorer, rclone e curl, o que facilita bastante o acesso
- Em servidores web principais como Apache, Nginx e Caddy, é possível configurar diretórios privados por usuário com uma configuração simples, além de integrar com autenticação LDAP
- Para desenvolvedores que querem fugir da dependência de nuvem e manter simples sua própria infraestrutura de gerenciamento de arquivos, o WebDAV continua sendo uma opção prática
Problemas do armazenamento de arquivos centrado em S3
- O FTP desapareceu, e o SFTP é incômodo por depender demais de SSH e autenticação Unix
- Como o AWS S3 se tornou o padrão de fato do setor, a maioria das aplicações web passou a ser projetada partindo do pressuposto de uma conexão com S3
- Isso favorece a Amazon, mas cria incômodo para os demais usuários
- Em projetos pessoais ou ambientes self-hosted, os recursos complexos do S3 são desnecessários; muitas vezes basta apenas um armazenamento de arquivos autenticado
- O autor deixou de usar S3 e migrou para WebDAV, recomendando que outros desenvolvedores também considerem essa escolha
Para quem o WebDAV é adequado e quais requisitos atende
- O WebDAV é adequado para usuários individuais ou pequenos projetos que precisam de acesso HTTP em nível de sistema de arquivos
- Recursos necessários: autenticação, gravação de arquivos, sincronização eficiente, privacidade por padrão e facilidade para tornar conteúdo público
- Recursos desnecessários: ACL avançada, URLs assinadas, versionamento, armazenamento em camadas, regras de ciclo de vida, cotas etc.
- Essas necessidades refletem bem o que a maioria dos desenvolvedores independentes procura, sem precisar operar sistemas complexos como OpenStack Swift, CEPH e Minio
- Em especial, o Minio recentemente removeu grande parte da interface administrativa e passou a exigir a escrita manual de arquivos de política em JSON, o que é ineficiente para um uso simples de armazenamento de arquivos
Acessibilidade do WebDAV e suporte de ferramentas
- O WebDAV tem suporte nativo em diversos sistemas operacionais e ferramentas
- MacOS Finder: inserir
https://... no menu “Conectar ao servidor”
- Windows Explorer: usar “Mapear unidade de rede” ou “Adicionar um local de rede”
- CLI e apps: rclone, curl, CyberDuck, WinSCP, Filezilla etc.
- Muita gente considera o WebDAV ultrapassado, mas na prática ele tem suporte nativo na maioria dos servidores web
- Pode ser ativado com facilidade em Apache, Nginx, Caddy, Lighttpd, IIS etc.
- OwnCloud e NextCloud também usam acesso baseado em WebDAV
Exemplos reais de uso do WebDAV
- O WebDAV já é usado em sincronização de contatos e calendários na forma de CardDAV e CalDAV
- Ou seja, muitos usuários já utilizam serviços baseados em WebDAV no dia a dia sem perceber
- O autor configurou o WebDAV com Apache e integrou autenticação LDAP para implementar acesso a diretórios pessoais por usuário
- O Caddy permite configurar a separação de diretórios por usuário de forma mais simples, mas o Apache também dá conta tranquilamente
- Embora a configuração do Apache seja um pouco mais complexa, ela permite garantir privacidade em ambientes com vários usuários
Exemplo de configuração de WebDAV com Apache
- Módulos necessários no Apache:
mod_dav, mod_dav_fs, mod_dav_lock
- Inclui configuração
BrowserMatch para compatibilidade com clientes antigos
- Principais elementos da configuração
- Controle do comportamento do WebDAV com
DavLockDB, DavMinTimeout, DavDepthInfinity etc.
- Integração com autenticação LDAP por meio de
AuthType Basic, AuthBasicProvider ldap etc.
- Uso de
RewriteEngine para restringir o usuário autenticado ao acesso apenas ao seu próprio diretório
- Se for criado em
/usr/local/www/webdav um diretório com o mesmo nome do usuário, esse usuário poderá usar seu próprio espaço após a autenticação
Casos de uso do WebDAV e possibilidades de expansão
- O autor usa WebDAV junto com os seguintes apps
- Joplin: app para sincronizar notas em um servidor próprio
- Keepassium: cliente Keepass para iOS/MacOS
- VLC, Infuse: streaming e reprodução de mídia
- rclone: sincronização de arquivos para publicar blog estático (mais rápido que NFS/SMB e sem necessidade de VPN)
- Ele também descobriu um novo projeto chamado Altmount
- Permite “montar” conteúdo publicado na Usenet e acessá-lo diretamente, sem download
- O fato de possibilitar acesso fácil à Usenet em múltiplos gigabits chamou sua atenção
2 comentários
Dentro da infraestrutura de casa eu uso NFS ou SMB, e fora dela estou usando bem o WebDAV, haha.
Comentários no Hacker News
Com isso, é possível sincronizar ou montar entre servidores WebDAV, e também expor o sistema de arquivos local, S3, Google Drive etc. como servidor WebDAV
O RFC é melhor que FTP, mas ainda há muito comportamento fora do padrão causado por diferenças entre implementações, então são necessários vários workarounds
Por padrão, não dá para definir hora de modificação ou hash, mas implementações como ownCloud e Nextcloud oferecem suporte a isso
Por ser baseado em HTTP e TLS, é bem mais rápido que SFTP
NFS também é baseado em TCP e pode ser criptografado, mas o suporte no Windows é fraco e só o macOS oferece suporte nativo
Já o WebDAV funciona bem nas duas plataformas
Hoje uso davx5, mas o acesso aos arquivos é inconveniente
Como combina bem com a infraestrutura mTLS que já tenho, prefiro WebDAV
No lado do servidor, uso sftpgo
Não é uma tecnologia exclusiva da Amazon; também existem projetos open source com apoio do Horizon da UE, como o Garage S3
https://garagehq.deuxfleurs.fr/
Por exemplo, o Tailscale Drive Share é baseado em WebDAV, e o armazenamento de arquivos do Fastmail também pode ser acessado via WebDAV
WebDAV é uma tecnologia bem bacana
Funciona muito bem
Tanto o Windows quanto o macOS têm suporte embutido, mas usuários comuns não conseguem acessar isso
No Windows é só para WSL, e no macOS é só para virtualização, o que é uma pena
Seria excelente se fosse possível montar 9p direto pela interface
Ele é compatível com o cliente do NextCloud (desktop/Android) e também pode ser usado no Gnome Online Accounts ou no Nautilus
https://codeberg.org/lunae/dav-next
Ainda não há empacotamento nem releases binárias, mas feedback é bem-vindo
Na plataforma de nuvem da nossa empresa, também estamos desenvolvendo um recurso para permitir acesso estilo drive via WebDAV
Como dá para reutilizar a infraestrutura baseada em HTTP, quase não há complexidade adicional
Tecnologias sem graça, mas estáveis acabam durando mais
E, além disso, é um padrão aberto
Ainda há muitas hospedagens compartilhadas que orientam o upload via FTP
SSH keys ou SFTP também podem ser usados, mas a documentação ainda menciona ferramentas FTP como o FileZilla
Guia de FTP da OVHcloud
Ainda é difícil acreditar que continuam usando um protocolo sem criptografia
Eu descartaria esse tipo de hospedagem na hora
Sinto falta da época em que era usado para distribuição de software ou no meio acadêmico, mas agora quase só restaram os últimos casos de uso
Isso permite sincronização entre usuários com várias contas do iCloud e elimina a necessidade de assinar o Dropbox
É mais rápido que CloudKit e dá menos trabalho de manutenção
Acho que ainda vou usar isso por muito tempo
Também inclui um web scraper, então é ótima para salvar markdown de chatbots LLM
Hoje em dia, a maioria dos vendors oferece compatibilidade com a API do S3
No fim, parece ser uma discussão sobre o próprio protocolo