Я использую класс Zend Frameworks Zend_Service_Amazon_S3 для загрузки файлов с сервера Amazon S3 в приложении codeigniter.
Мой сценарий сначала проверяет, авторизован ли пользователь для загрузки файла, а затем пытается принудительно загрузить его с серверов S3. У меня это работает, когда загружаемый файл представляет собой небольшой тестовый почтовый индекс (661 байт), но когда я пытаюсь загрузить один из больших видеоархивов (150 МБ +), я просто получаю пустой экран.
Код выглядит следующим образом:
$this->load->helper('download');
$s3 = new Zend_Service_Amazon_S3();
force_download($video->filename(), $s3->getObject($video->s3_object_path()));
Где $ video - это экземпляр модели, представляющей видео.
Размер, кажется, проблема здесь, это единственная разница, которую я вижу между двумя файлами.
В идеале я хотел бы, чтобы данные с S3 обходили сервер, на котором размещено приложение. Функция force_download в codeigniter устанавливает «Content-Disposition: attachment;» заголовок. Из прочтения других связанных постов здесь, это должно обойти сервер не так ли?