Eso es todo. Un servidor de clon Pastebin minimalista y sin complicaciones en Golang. Admite solo dos operaciones:
¿Qué más necesitas?
binnit es un solo ejecutable sin dependencias . No necesita un servidor web. No necesita un servidor SQL. No necesita ninguna biblioteca externa.
binnit sirve pastas en el formato:
http://<server_name>/abcdef1234567890
y los almacena en una carpeta en el servidor, un archivo por pasta, cuyo nombre de archivo es idéntico al ID de pegar. La identificación única de una pasta se obtiene del SHA256 de la concatenación del título, el tiempo y el contenido. La representación es mínima, a propósito, pero se basa en una plantilla personalizable.
binnit se configura actualmente a través de un archivo de configuración de valor de clave simple, cuyo nombre se puede especificar en la línea de comando a través de la opción -c <config_file> . Si no se especifica ningún archivo de configuración, binnit busca ./binnit.cfg . Las opciones configurables son:
Al igual que con otros servicios tipo pastebin, puede enviar una pasta a binnit usando curl . Por ejemplo, si su servidor binnit se ejecuta en http://servername.net , puede pegar un archivo allí usando:
curl -F 'paste=<myfile' http://servername.net
y obtener en la salida la ID asociada a la pasta recién creada. Similarmente
mylongcommand | curl -F 'paste=<-' http://servername.net
Pegará la salida de mylongcommand a http://servername.net y mostrará en la salida de la ID de la nueva pasta.
Hay cientos de servidores tipo pastebina en la naturaleza. Pero la abrumadora mayoría de ellos es un software sobrevalorado , dependiendo de muchas bibliotecas/marcos/herramientas, proporcionando muchas características inútiles e implicando una cantidad inútil de complejidad.
Un servidor de pegar debe poder hacer dos cosas, 1) crear una nueva pasta y devolver su ID, y 2) recuperar una pasta existente con su ID. binnit hace solo y solo estas dos cosas, de la manera más simple posible, sin ninguna dependencia externa. Si necesita más que eso, entonces binnit no es para usted. ¿Pero realmente necesitas algo más?
Parece que no se alcanza la perfección cuando no hay nada más que agregar, sino cuando no hay nada más que eliminar (Antoine de Saint Exupéry)
binnit está destinado a ser realmente mínimo. Consiste en aproximadamente 500 líneas de código fuente de Golang en total, que incluye:
Si desea despojar aún más a binnit , podría considerar eliminar:
No puede eliminar los estados de licencia en cada archivo de origen.
binnit es Copyright (2017) de Vincenzo "Katolaz" Nicosia.
binnit es un software gratuito. Puede usarlo, modificarlo y redistribuirlo bajo los términos de la Licencia Pública General GNU Affero, la versión 3 de la licencia o, a su opción, cualquier versión posterior. Consulte License.md para más detalles.