Tengo un gran sistema CRM en PHP, que funciona con los archivos de los usuarios y los almacena en la carpeta en la raíz del proyecto. Ahora necesito cambiar el sistema para guardar archivos en Amazon S3, pero debido a la mala arquitectura del sistema (es un antiguo sistema de código abierto) no puedo simplemente reescribir el código. Entonces, tuve una idea un poco loca, interceptar todas las llamadas del sistema a una carpeta ("/var/www/%my_project%/uploads") y procesarlas de manera especial. PHP debe asegurarse de que funcione con la carpeta habitual, file_put_contents y file_get_contents deberían funcionar como de costumbre, pero de hecho deberían funcionar con código que sirva archivos de S3 para ellos. ¿Es eso posible (¿cómo?), o es una idea demasiado loca?
Gracias :)
Amazon S3 Stream Wrapper me ayudó. Solo se necesita para crear un objeto de cliente y llamar al método registerStreamWrapper. Eso es todo, ahora puede trabajar con una carpeta "s3: // su nombre de respaldo" como con la carpeta habitual.