gestione delete_after_processing
This commit is contained in:
71
docs/FILE_DELETION_POLICY.md
Normal file
71
docs/FILE_DELETION_POLICY.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# File Deletion Policy
|
||||
|
||||
## Comportamento di Default
|
||||
|
||||
Per impostazione predefinita, i file ricevuti via FTP/SFTP vengono **mantenuti** sul server dopo l'elaborazione:
|
||||
|
||||
- ✅ **Elaborazione riuscita**: il file viene rinominato con timestamp e salvato nella directory dell'utente, i dati vengono inseriti nel database
|
||||
- ❌ **Elaborazione fallita**: il file rimane nella directory dell'utente per permettere debug e riprocessamento manuale
|
||||
|
||||
## Abilitare la Cancellazione Automatica
|
||||
|
||||
Per cancellare automaticamente i file dopo un'elaborazione **riuscita**, imposta la variabile d'ambiente nel `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
DELETE_AFTER_PROCESSING: "true"
|
||||
```
|
||||
|
||||
### Valori Accettati
|
||||
|
||||
La variabile accetta i seguenti valori (case-insensitive):
|
||||
- `true`, `1`, `yes` → cancellazione **abilitata**
|
||||
- `false`, `0`, `no` o qualsiasi altro valore → cancellazione **disabilitata** (default)
|
||||
|
||||
## Comportamento con DELETE_AFTER_PROCESSING=true
|
||||
|
||||
| Scenario | Comportamento |
|
||||
|----------|---------------|
|
||||
| File elaborato con successo | ✅ Dati inseriti nel DB → File **cancellato** |
|
||||
| Errore durante elaborazione | ❌ Errore loggato → File **mantenuto** per debug |
|
||||
| File vuoto | 🗑️ File cancellato immediatamente (comportamento esistente) |
|
||||
|
||||
## Log
|
||||
|
||||
Quando un file viene cancellato dopo l'elaborazione, viene loggato:
|
||||
|
||||
```
|
||||
INFO: File example_20250103120000.csv loaded successfully
|
||||
INFO: File example_20250103120000.csv deleted after successful processing
|
||||
```
|
||||
|
||||
In caso di errore durante la cancellazione:
|
||||
|
||||
```
|
||||
WARNING: Failed to delete file example_20250103120000.csv: [errno] [description]
|
||||
```
|
||||
|
||||
## Esempio Configurazione
|
||||
|
||||
### Mantenere i file (default)
|
||||
```yaml
|
||||
ftp-server:
|
||||
environment:
|
||||
DB_HOST: "mysql-server"
|
||||
# DELETE_AFTER_PROCESSING non impostata o impostata a false
|
||||
```
|
||||
|
||||
### Cancellare i file dopo elaborazione
|
||||
```yaml
|
||||
ftp-server:
|
||||
environment:
|
||||
DB_HOST: "mysql-server"
|
||||
DELETE_AFTER_PROCESSING: "true"
|
||||
```
|
||||
|
||||
## Note Implementative
|
||||
|
||||
- La cancellazione avviene **solo dopo** l'inserimento riuscito nel database
|
||||
- Se la cancellazione fallisce, viene loggato un warning ma l'elaborazione è considerata riuscita
|
||||
- I file con errori di elaborazione rimangono sempre sul server indipendentemente dalla configurazione
|
||||
- La policy si applica sia a FTP che a SFTP
|
||||
Reference in New Issue
Block a user