Detectando modificação do arquivo em um compartilhamento SMB remoto usando PHP

StackOverflow https://stackoverflow.com/questions/1660542

  •  11-09-2019
  •  | 
  •  

Pergunta

Eu estou escrevendo um processo PHP que será executado em uma máquina Unix que terá de monitorar um servidor SMB remoto e detectar novos arquivos que estão sendo carregados para que a caixa via FTP. É improvável que eu vou ser capaz de

Ele terá de detectar: ??

  1. novos arquivos a ser criado
  2. O upload do arquivo completando
  3. Arquivos sendo excluído

Se fosse um compartilhamento NFS, eu tentaria usando FAM para detectar os eventos, mas eu não posso ver uma maneira de fazer algo equivalente?

Foi útil?

Solução

Não soa como algo que eu usaria na produção. Mas você pode tentar algo como isto:

  1. montar o compartilhamento SMB com Samba on a máquina que está a executar um PHP daemon
  2. SPL uso RecursiveIteratorIterator com DirectoryIterator para coletar e manter uma lista de todos os arquivos e pastas na unidade compartilhada
  3. uma vez em um tempo atualizar a lista de pastas e compará-lo com o estado atual, Se o arquivo não existe mais você sabe que foi excluído, se há um novo arquivo de colocá-lo na fila e marcá-lo como "ser carregado "
  4. na próxima "run de atualização" verifique o arquivo na fila, é o arquivo tamanho não mudou o upload do arquivo provavelmente concluída, se o tamanho do arquivo mudou colocá-lo na fila novamente e marcá-lo como "sendo carregado"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top