Domanda

Sto scrivendo un processo PHP che verrà eseguito su una macchina Unix che dovrà monitorare un server SMB remoto e rilevare nuovi file che vengono caricati su quella scatola tramite FTP. E 'improbabile che sarò in grado di

Sarà necessario rilevare:

  1. I nuovi file creati
  2. Il caricamento del file completato
  3. File di essere cancellato

Se fosse una condivisione NFS, mi piacerebbe provare utilizzando FAM di rilevazione degli eventi, ma non riesco a vedere un modo di fare qualcosa di equivalente?

È stato utile?

Soluzione

Non suona come qualcosa che avrei usato nella produzione. Ma si potrebbe provare qualcosa di simile:

  1. montare la condivisione SMB con Samba su la macchina che esegue una PHP daemon
  2. utilizzare SPL RecursiveIteratorIterator con DirectoryIterator per raccogliere e mantenere un elenco di tutti i file e cartelle sull'unità condivisa
  3. una volta in un po 'di aggiornare l'elenco delle cartelle e confrontarlo con lo stato attuale, se il file non esiste più si sa che è stato eliminato, se c'è un nuovo file di metterlo in coda e segnare come "essere caricato "
  4. nella prossima "corsa di aggiornamento" controllare il file in coda, è il file dimensioni non ha cambiato il caricamento di file probabilmente completato, se la dimensione del file cambiato metterlo in coda di nuovo e segnare come "caricato"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top