Necesito entregar archivos de gran tamaño (> 2 gb) desde un servidor web Apache. Los archivos son descargas protegidas, así que necesito algún tipo de forma de autorizar al usuario. El CMS que uso utiliza cookies comprobadas en una base de datos MySQL para verificar al usuario. En el servidor, no tengo control sobre max_execution_time y control limitado sobre memory_limit.Sirviendo archivos grandes protegidos en PHP/Apache
Mi técnica ha estado trabajando para archivos pequeños. Después de que el usuario ha sido autorizado en PHP (por el CMS), uso readfile() para servir el archivo, que se almacena sobre la raíz del documento para evitar el acceso directo. He leído sobre técnicas para dividir la descarga o usar fpassthru para superar el límite de memoria de PHP. Pero no he encontrado una técnica para superar el límite de max_execution_time.
Pensé en guardar el archivo dentro de la raíz del documento, por lo que podía omitir por completo PHP. Pero lo que no puedo entender es cómo restringir el acceso con htaccess. Necesito verificar al usuario contra la base de datos antes de que pueda servirles el archivo.
Gracias.
¿Has probado usar set_time_limit (0)? – igorw