Retomando desarrollo el almacén de archivos
Retomando el desarrollo del sitio web almacén de archivos
Hace poco a modo de tomar un descanso, he retomado el desarrollo de una aplicación web para compartir archivos: "Almacén de archivos".
Pequeña reseña¶
Esta pequeña aplicación web la fui escribiendo a modo de aprender python flask hace algunos años. La finalidad es tener un sitio web donde entras y subes uno o más archivos que quieres compartir en tu red local o por internet sin necesidad de cuentas de usuarios. Aunque existen muchos sitios de este tipo, la idea era construirla como un servicio para La Otra Red y originalmente la llamamos "el Botadero" a modo de juego.
Terminé una versión básica funcional y luego de que la probamos, paré el desarrollo por casi dos años. Pero siempre era divertido programarla y hace unos días volví a retomar el desarrollo y puedo decir que sigue siendo divertido.
Retomando el desarrollo¶
La primera tarea fue actualizarla a python3 y también sus dependencias que costo un poco, luego ordenar el código y hacerlo más extendible que fue el trabajo principal.
El código y otra documentación esta publicado en:
Hay una instancia en https://botadero.rmgss.net
Idea del desarrollo¶
La interfaz principal permite seleccionar archivos de tu dispositivo y subirlos, luego estos aparecen en una caja donde al hacerles click se los puede descargar. Después de un tiempo (configurable) estos se borran automáticamente y no queda rastro de estos. Otras características importantes son:
- Verifica que no se suban archivos duplicados, para esto verifica el nombre y contenido obteniendo el digesto con un algoritmo como
sha1
. - Verifica que exista almacenamiento disponible antes de guardar los archivos de manera temporal.
- Toda estas características deben ser configurables.
- El sitio debe ser ligero.
- La instalación debe ser sencilla.
Pendientes¶
Para hacerlo más flexible, el sitio debería:
- Permitir proteger la descarga de archivos antes de subirlos con una contraseña.
- Permitir eliminar los archivos si estos se han subido con un contraseña.
- Mejorar la interfaz en dispositivos móviles y en general.
- Optimizar proceso de subida.
- Hacerlo el código más legible y extendible.
- Corregir errores.
Espero alguien se apunte a ayudar con el desarrollo o de cualquier otra forma— compartir es bueno ;-)