share/README.md

49 lines
1.2 KiB
Markdown
Raw Normal View History

2022-10-20 23:20:04 +02:00
# Share
Servicio para compartir arquivos.
Recibe un arquivo.
Devolve un link para descargalo.
2022-10-24 10:23:47 +02:00
## Execución
```
2022-10-25 09:23:45 +02:00
UPLOADS="/tmp/uploads/" BASE_URL="http://127.0.0.1" PORT=4000 RPROXY=true cargo run
2022-10-24 10:23:47 +02:00
```
2022-10-25 09:23:45 +02:00
As variables de entorno UPLOADS, BASE_URL, PORT e RPROXY son opcionais,
tendo como valores por defecto:
2022-10-24 10:23:47 +02:00
- UPLOADS = "uploads/"
2022-10-24 17:00:07 +02:00
- BASE_URL = "http://127.0.0.1"
2022-10-24 10:23:47 +02:00
- PORT = 3000
2022-10-25 09:23:45 +02:00
- 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.
2022-10-24 10:23:47 +02:00
2022-10-20 23:20:04 +02:00
## Funcionamento
2022-10-20 23:46:55 +02:00
```
curl -F'file=@fondo-mobil.jpg' https://sh4r.in
2022-10-20 23:46:55 +02:00
```
2022-10-20 23:20:04 +02:00
### Subida
Cando recibe un arquivo:
- Xenera un hash.
- Crea un directorio "primeiro díxito do hash/$HASH/".
Exemplo: /R/RORoxqH/
2022-10-20 23:20:04 +02:00
- Garda o arquivo en ese directorio.
- Mostra o link de descarga: https://host:port/f/$HASH
2022-10-20 23:20:04 +02:00
### Baixada
Cando recibe un link de baixada:
- Colle o $HASH da URL.
- Le o arquivo do directorio apropiado: "primeiro díxito do hash/$HASH/"
2022-10-20 23:20:04 +02:00
- 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
```