Aplicación web "El Almacén de archivos" sitio ligero para compartir archivos https://botadero.rmgss.net

Rodrigo Garcia Saenz 081ff483a6 Corrigiendo subir nombres de archivo de que sea un emoji solamente %!s(int64=4) %!d(string=hai) anos
almacen cd949a805e + almacen/.gitkeep %!s(int64=4) %!d(string=hai) anos
botadero 081ff483a6 Corrigiendo subir nombres de archivo de que sea un emoji solamente %!s(int64=4) %!d(string=hai) anos
cronjobs e0a65de9f4 + INSTALL.es.md supervisorctl %!s(int64=4) %!d(string=hai) anos
docs 9970c5c705 MAX_CONTENT_LENGTH +90% y nota para configuración de Nginx %!s(int64=4) %!d(string=hai) anos
logs c0e4f4279f Agregando configs adicionales para logs y carpeta logs/ %!s(int64=4) %!d(string=hai) anos
tests 8d5384f365 fix download protected file password check %!s(int64=4) %!d(string=hai) anos
.gitignore 85bca6910a - config files + config samples %!s(int64=4) %!d(string=hai) anos
LICENSE 505dbcb306 Cambiada licencia a AGPL, agregado contador de descargas basico %!s(int64=8) %!d(string=hai) anos
README.md 73dd04ebb4 CAPTCHA note %!s(int64=4) %!d(string=hai) anos
app.ini e3d2e21793 + INSTALL.es.md %!s(int64=4) %!d(string=hai) anos
botadero.py cf2479543c +- estructura del punto inicial, paquete 'database' %!s(int64=6) %!d(string=hai) anos
cronjobs.py c9cd659520 Agregando paquete cronjobs y modulo para llamarlo %!s(int64=4) %!d(string=hai) anos
manage.py 9b1aeb1b10 fix creacion de tablas a partir de database/models.py %!s(int64=6) %!d(string=hai) anos
requirements.txt 24aa749548 fix MarkupSafe dependecy %!s(int64=4) %!d(string=hai) anos
run.sh e0a65de9f4 + INSTALL.es.md supervisorctl %!s(int64=4) %!d(string=hai) anos
wsgi.py e777cd6178 + uwsgi file %!s(int64=4) %!d(string=hai) anos

README.md

Servicio web centralizado para compartir archivos en una red local o internet.

Un directorio público donde cualquiera puede subir archivos y estos se pueden descargar libremente.

front1 front2 front3

Para ahorrar espacio de almacenamiento, los archivos se borran después de un número ajustable de tiempo (días, minutos o segundos) y también se evita la posiblidad de subir archivos duplicados usando algoritmos para obtener digestos sha1, md5, sha256, etc.

Entre las funcionalidades que se pueden ajustar están:

  • Intervalo de borrado.
  • Almacenamiento máximo para archivos.
  • Almacenamiento máximo por tamaño de archivo.
  • Intervalo de borrado por tamaño de archivos.
  • Selección de algoritmo para digestos.
  • Comprobación acelerada de digestos.
  • Protección de archivos usando passwords.
  • Ajuste de unidad de tiempo.
  • Selección de estilos de apariencia.
  • Buen soporte para dispositivos móviles.

Esta aplicación no guarda datos sobre quién sube los archivos, licencia AGPL.

Instalación

  • Despliegue con nginx: docs/INSTALL.es.md
  • Se utiliza python3 con el micro framework Flask, se puede instalar con los siguientes pasos:
Para desarrollo
# descargar el repositorio
git clone https://notabug.org/strysg/botadero
cd botadero
# crear entorno virtual python 3
virtualenv --python=python3 venv
# activar entorno virtual
. venv/bin/activate
# instalar dependencias
pip install -r rquirements.txt
# variables de entorno
export FLASK_APP=botadero.py
export FLASK_ENV=development
# ejecutar en modo desarrollo
flask run

# ejecutar pruebas (desarrollo)
pytest

La aplicación necesita que se ejecute el script cronjobs.py que se encarga de actualizar el tiempo restante de los archivos y eliminarlos. Es recomendable agregar la ejecución de este script como tarea programada, en sistemas UNIX por ejemplo agregando una entrada en /etc/crontab.

*/1 *   * * *   user    cd /home/user/alamcenArchivos; export FLASK_ENV=production;venv/bin/python3 cronjobs.py >> cronjobs.log 2>&1

Tareas por hacer

  • Mejorar interfaz de subida de archivos
    • Captcha
  • Borrado de archivos con contraseña
  • Panel de administración
  • Dockerizar
  • Agregar más Tests

Archive store

Centralized web server to share files on a local network or over the internet.

A public directory where anyone can upload files and so they can be freely downlaoded.

front1 front2 front3

To save storage, files are deleted after an adjustable number of days and file duplication is avoided by using sha1, md5, sha256, etc. digests.

Some customizable features are:

  • File deletion interval.
  • Maximun file storage size.
  • Maximun file size for files.
  • Deletion interval per file size.
  • Verbosity level to log files.
  • Digest algorithm selection.
  • Accelerated digest.
  • File protection using password.
  • Time unit adjustment.
  • Good support for mobile devices.

This application does not store data about who upload files, AGPL License.

Install

  • Deploy with nginx: docs/INSTALL.es.md
  • It uses python3 and micro framework Flask, can be installed following:
For development
# download project
git clone https://notabug.org/strysg/botadero
cd botadero
# create python 3 virtual environment
virtualenv --python=python3 venv
# activate it
. venv/bin/activate
# install dependencies
pip install -r rquirements.txt
# environment variables
export FLASK_APP=botadero.py
export FLASK_ENV=development
# run development mode
flask run

# testing
pytest

The aplication requires the script cronjob.py to be executed, this updates the files ramaining time and also removes them if necesary. It is recomended to make the execution of this script a cronjob, on UNIX system for instance adding to /etc/crontab.

*/2 *    * * *   user    export FLASK_ENV=production; /home/user/almacenArchivos/venv/bin/python3 /home/user/almacenArchivos/cronjobs.py

TODO

  • Improve file upload user interface
    • Captcha
  • File deletion using password
  • Admin panel
  • Dockerize the app
  • Add more tests