servicio para compartir arquivos "blazingly fast"
Go to file
2022-10-25 09:34:11 +02:00
src cambios na web raíz e config para nginx 2022-10-25 09:34:11 +02:00
.gitignore upload funcionando 2022-10-21 12:12:53 +02:00
Cargo.lock xa descarga un arquivo harcodeado 2022-10-21 13:36:53 +02:00
Cargo.toml xa descarga un arquivo harcodeado 2022-10-21 13:36:53 +02:00
nginx.conf cambios na web raíz e config para nginx 2022-10-25 09:34:11 +02:00
README.md agregase config para reverse proxy 2022-10-25 09:23:45 +02:00

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:

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 /uploads -type f -mtime +5 -execdir rm -- '{}' \;
0 1 * * * /usr/bin/find /uploads -empty -type d -delete