Я не занимался этой проблемой напрямую, но мои первые мысли:
Flash или, возможно, jQuery могут быть использованы для собственного решения, когда клиент отправляет обратно информацию о том, что он получил, и сохраняет эту информацию в журнале базы данных.Вы можете также рассмотреть возможность использования Bit Torrent в качестве посредника, ваши пользователи могут загрузить бесплатный торрент-клиент, и вы можете исследовать торрент-сервис на стороне сервера (возможно, RivetTracker или PHPBTTracker).Я не уверен, насколько детализированы эти данные, но, по крайней мере, поскольку вы уверены, что имеете дело с одним пользователем, если он станет сеялкой, вы можете стереть старый файл и начать со следующего.
Разбейте файлы размером более 2 ГБ на куски по 2 ГБ, чтобы приспособить пользователей с дисками FAT32, которые не могут обрабатывать файлы размером ~ ~ 4 ГБ.Разрежьте до 1 ГБ, если пространство на сервере ограничено, сохраняя эталон того, что было упаковано из S3 через запись в базе данных
Fzip - это круто, но я думаю, что это больше для архивирования на стороне клиента.PHP имеет библиотеки ZIP и RAR (http://php.net/manual/en/book.zip.php), которые вы можете использовать для округления файлов на стороне сервера. Я думаю, что любое решение, которое вы найдете, потребует от вас самостоятельно управлять безопасностью, сохраняя записи в базе данных о том, кто что получил изагрузка ключей. В противном случае люди могут использовать ваши ресурсы как систему доставки файлов.
Удачи!