Is there anywhere I could improve my script to check filesize or whatever before downloading?
Antes de o download não faria qualquer sentido, porque obviamente o servidor não responde corretamente às suas solicitações de download. Ele deve retornar o arquivo adequado ou deve retornar um código de erro HTTP, mas aparentemente não faz nenhum dos dois. Você pode tentar determinar o tamanho do arquivo remoto com uma solicitação HTTP HEAD
, mas isso não será bom quando o arquivo remoto estiver bom, mas a entrega GET
ainda falhará.
Em vez disso, use um loop no seu script para percorrer todos os arquivos que você deseja baixar. Faça o download de cada arquivo com uma única solicitação wget
e, em seguida, verifique o tamanho do arquivo que você baixou. Se for um arquivo de 0 bytes e você tiver certeza de que não deveria ser, repita a solicitação. É claro que você deve adicionar um limite à prova de falhas para que seu script não repita a solicitação indefinidamente se sempre falhar, e talvez também um atraso (caso o servidor esteja limitando suas solicitações e falhando intencionalmente).