IMHO, OCS and PHP are NOT designed for sending (efficiantly) a 4Gb zip file.
200k, 2Mb, 50Mb, maybe 100Mb, it's ok, but 4Gb NO, definively NO.
You don't also consider an important element : when you have to install a such large package, you CAN'T run installation at anytime ! You have to organize installation at next starting time, for a 'quiet' moment, for example ...
IMHO, you can consider create a task which download the package and verifiy signature (and retry until signature is ok) ...