É isso. Um servidor clone minimalista e sem graça em Golang. Ele suporta apenas duas operações:
O que mais você precisa?
binnit é um único executável sem dependências . Você não precisa de um servidor da web. Você não precisa de um servidor SQL. Você não precisa de nenhuma biblioteca externa.
binnit serve pastas no formato:
http://<server_name>/abcdef1234567890
e os armazena em uma pasta no servidor, um arquivo por pasta, cujo nome de arquivo é idêntico ao ID da pasta. O ID exclusivo de uma pasta é obtido no SHA256 da concatenação do título, tempo e conteúdo. A renderização é mínima, de propósito, mas com base em um modelo personalizável.
binnit está atualmente configurado através de um arquivo de configuração de key = key = value simples, cujo nome pode ser especificado na linha de comando através da opção -c <config_file> . Se nenhum arquivo de configuração for especificado, binnit procurará ./binnit.cfg . As opções configuráveis são:
Como em outros serviços do tipo Pastebin, você pode enviar uma pasta para binnit usando curl . Por exemplo, se o seu servidor binnit estiver em execução em http://servername.net , você poderá colar um arquivo lá usando:
curl -F 'paste=<myfile' http://servername.net
e obtenha na saída o ID associado à pasta recém -criada. De forma similar
mylongcommand | curl -F 'paste=<-' http://servername.net
Colará a saída de mylongcommand em http://servername.net e mostrará a saída do ID da nova pasta.
Existem centenas de servidores do tipo pastebina em estado selvagem. Mas a esmagadora maioria deles é um software excessivo , dependendo de muitas bibliotecas/estruturas/ferramentas, fornecendo muitos recursos inúteis e implicando uma quantidade inútil de complexidade.
Um servidor de pasta deve poder fazer duas coisas, 1) criar uma nova pasta e retornar seu ID e 2) recuperar uma pasta existente usando seu ID. binnit faz apenas essas duas coisas, da maneira mais simples possível, sem nenhuma dependência externa. Se você precisar mais do que isso, binnit não é para você. Mas você realmente precisa de mais alguma coisa?
Parece que a perfeição é alcançada não quando não há mais nada a acrescentar, mas quando não há mais nada para remover (Antoine de Saint Exupéry)
binnit pretende ser verdadeiramente mínimo. Consiste em cerca de 500 linhas de código -fonte de Golang no total, incluindo:
Se você quiser tirar binnit ainda mais, pode considerar remover:
Você não pode remover as instruções de licença em cada arquivo de origem.
binnit é Copyright (2017) de Vincenzo "Katolaz" Nicósia.
binnit é um software livre. Você pode usar, modificar e redistribuí -lo nos termos da licença pública geral do GNU Affero, versão 3 da licença ou, a sua opção, qualquer versão posterior. Consulte License.md para obter detalhes.