Suponho que você esteja procurando uma solução de servidor e não um produto SAAS, caso contrário, essa questão seria pública.
O Sparkleshare é um software de código aberto que pode satisfazer suas necessidades.
Mas eu recomendaria apenas usar o rsync para espelhar para um servidor remoto que tenha a largura de banda necessária. Você pode configurar este sistema em minutos e faz tudo o que você quer.
Basta especificar uma pasta de origem e soltar seus arquivos. Dê acesso de web ou acesso FTP aos clientes no servidor remoto.
Eu recomendaria iniciar um script de shell com um loop infinito que executa rsync e dorme por 1 segundo após cada iteração. Comparado a um Cronjob, isso tem a vantagem de você não receber uploads paralelos que interfiram. E com seus arquivos grandes, isso seria um problema que vejo agora.
O Rsync ainda tem a vantagem de os arquivos serem primeiro carregados como arquivos "ocultos" com um arquivo. prefixo e um nome aleatório, para que o cliente veja apenas arquivos que tenham terminado de carregar e tenham passado por uma verificação de integridade.
Se um arquivo for atualizado, o rsync também poderá lidar com isso com eficiência.
Apenas este script deve ser perfeito para você:
#!/bin/bash
while [ 1 = 1 ]
do
rsync -arvz /my/sourcefolder/ [email protected]:/remote/folder/
sleep 1;
done
Apenas monitore sua execução, coloque-a no início automático, etc.
Você também pode se beneficiar da compactação usando o rsync.