Atualização para qualquer pessoa interessada. Analisando o uso do Gerenciador de Recursos do Servidor de Arquivos para monitorar isso.
Levanta outra pergunta, mas vou fechar esta agora.
Estou executando o IIS 8.5 no Windows Server 2012 R2. É possível monitorar uma conta de ftp e se um determinado tipo de arquivo é carregado EG. * .jpg ou * .png, dispara um script powershell automaticamente para comprimir / otimizar o arquivo?
Obrigado.
Editar. Eu tenho brincado com o objeto System.IO.FileSystemWatcher para monitorar pastas e, em seguida, otimizá-las em lote em um determinado momento. Mas eu não estou muito interessado nessa ideia (veja meu comentário abaixo). Mas isso é o que eu tenho até agora.
O script de monitoramento
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\WebSites"
$watcher.Filter = "*.jpg"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
$action = { $path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$logline = "$(Get-Date), $changeType, $path"
Write-Host $path, $changeType
Add-content "C:\Testing\log.txt" -value $path
}
Register-ObjectEvent $watcher "Created" -Action $action
Register-ObjectEvent $watcher "Changed" -Action $action
while ($true) {sleep 5}
E então esse script seria executado por meio do Agendador de Tarefas em um determinado momento:
$A = $(foreach ($line in Get-Content "C:\Testing\log.txt")
{$line}) | sort | Get-Unique
Clear-Content "C:\Testing\log.txt"
& 'E:\Program Files\FileOptimizer\FileOptimizer64.exe' $A /JPEGCopyMetadata=false/JPEGUseArithmeticEncoding=false/JPEGAllowLossy=true/ProcessPriority=128/DoNotCreateBackups=true
Tags automation ftp powershell iis