# Share Servicio para compartir arquivos. Recibe un arquivo. Devolve un link para descargalo. ## Execución ``` UPLOADS="/tmp/uploads/" BASE_URL="http://127.0.0.1" PORT=4000 RPROXY=true cargo run ``` As variables de entorno UPLOADS, BASE_URL, PORT e RPROXY son opcionais, tendo como valores por defecto: - UPLOADS = "uploads/" - BASE_URL = "http://127.0.0.1" - PORT = 3000 - RPROXY = false A variable RPROXY convén poñela a "true" si o demonio está executándose detráis de un "reverse proxy" xa que o PORT non se usará externamente. Así os enlaces mostrarárse sin o porto. ## Funcionamento ``` curl -F'file=@fondo-mobil.jpg' https://sh4r.in ``` ### Subida Cando recibe un arquivo: - Xenera un hash. - Crea un directorio "primeiro díxito do hash/$HASH/". Exemplo: /R/RORoxqH/ - Garda o arquivo en ese directorio. - Mostra o link de descarga: https://host:port/f/$HASH ### Baixada Cando recibe un link de baixada: - Colle o $HASH da URL. - Le o arquivo do directorio apropiado: "primeiro díxito do hash/$HASH/" - Envía a descarga. ### Limpeza Executase un cron que borra os arquivos que teñan máis de 5 días. ``` 0 0 * * * /usr/bin/find /home/_sh4rin/uploads/ -type f -mtime +5 -execdir rm -- '{}' \; 0 1 * * * /usr/bin/find /home/_sh4rin/uploads/ -empty -type d -delete ```