Hay problemas conocidos reportados con Laravel Media Library versión 9.11.4 específicamente relacionados con las operaciones S3. Un problema importante que surgió durante esta actualización de la versión implicó errores al eliminar archivos de un cubo S3. Los usuarios observaron que, mientras usaban Laravel Media Library 9.11.3, las deleciones de archivos en S3 funcionaron perfectamente, pero después de actualizar a 9.11.4, la eliminación de archivos multimedia de S3 comenzó a dar como resultado errores. El mensaje de error común fue una solicitud de AWS HTTP 400 Bad, destacando un encabezado requerido que faltaba en la solicitud "específicamente," Content-MD5 o X-AMZ-Checksum-*"faltaba en los encabezados de solicitud de eliminación.
Este error condujo al problema donde se eliminaron los registros de la base de datos de los medios, pero los archivos correspondientes en el cubo S3 no se eliminaron. Los usuarios informaron que encontraron múltiples errores de este tipo de manera consistente durante las operaciones de eliminación. El error ocurrió específicamente con las solicitudes posteriores al punto final `/? Delete` del cubo S3. Las solicitudes fallaron debido a los encabezados incompletos o faltantes esperados por AWS S3 para operaciones de eliminación de lotes.
La investigación realizada por la comunidad y los mantenedores revelaron que esta anomalía no fue causada directamente por los cambios en el código de la Biblioteca de Medios de Laravel, pero se remonta a un error en el AWS SDK subyacente para PHP (AWS/AWS-SDK-PHP). Las versiones problemáticas del AWS SDK, en particular la versión 3.209.31, introdujeron problemas de encabezado en Solicitudes de objetos Eliminar para S3. Se aconsejó verificar la versión AWS SDK instalada usando el compositor y actualizarla a las versiones 3.211.x o luego solucionar el problema. Después de actualizar el AWS SDK de forma independiente, los usuarios informaron que los errores de eliminación dejaron de ocurrir.
Además de este error relacionado con la eliminación, algunos usuarios informaron encontrar fallas intermitentes de llamadas de API S3 después de actualizar a Laravel Media Library 9.11.4. Hubo referencias al uso de "ForcedElete ()" en los métodos internos de la biblioteca cambiando cómo se procesaron las deleciones, lo que podría haber expuesto o amplificado el error relacionado con el AWS SDK. Algunos usuarios también mencionaron complicaciones que surgen cuando se usan eliminaciones suaves en sus modelos, lo que podría enmascarar o afectar la forma en que se activaron las deleciones S3.
Además de los problemas de eliminación, los usuarios han informado otros desafíos al combinar la biblioteca de medios Laravel con S3, aunque no específicamente vinculado a la versión 9.11.4. Por ejemplo, algunos usuarios enfrentaron problemas relacionados con la función de carga temporal en Media Library Pro cuando se configuran para cargar directamente a S3. Cuestiones como la desaparición inesperada de archivos de S3 después de finalizar las cargas, los errores que abren archivos locales temporales y los matices de configuración fueron temas comunes. Estos problemas a menudo se derivaban de cómo los archivos temporales se administraron localmente y se sincronizaron con la configuración del disco S3 y la sincronización o secuencia de operaciones de guardado en modelos que contienen archivos adjuntos de medios.
Otra categoría de problemas informados se relaciona con los permisos y los controles de acceso en los cubos S3. Por ejemplo, si el cubo S3 es privado, las cargas o las deleciones pueden fallar si las políticas de IAM o las políticas de deseos no otorgan acceso suficiente a la aplicación Laravel, lo que resulta en errores de acceso. Esto a veces puede confundirse con los problemas de la biblioteca o SDK, pero realmente se debe al modelo de permiso AWS.
Algunos usuarios también encontraron un comportamiento inesperado en las conversiones de medios (cambio de tamaño de imagen, cambios de formato) cuando trabajan con discos S3. Esto se destacó particularmente para las conversiones de procesamiento en cola donde la configuración del disco o el entorno de los trabajadores podrían carecer de acceso o tuvieron tiempos de espera que hicieron que las conversiones fallaran o no se activen correctamente. Si bien estos problemas son más generales con el uso a gran escala de la biblioteca de medios de laravado y trabajos en cola, se cruzan con el uso de S3 en la producción.
En resumen, el problema principal confirmado principal con Laravel Media Library 9.11.4 y S3 de integración depende de un error de eliminación debido a un error PHP SDK AWS AWS, desencadenando los encabezados requeridos para las solicitudes de eliminación, causando deleciones de archivos fallidas en S3. La actualización de AWS PHP SDK resolvió este problema. Junto a esto, los usuarios deben garantizar los permisos adecuados del cubo S3 y tener en cuenta los casos de borde con cargas temporales y conversiones de medios en cola cuando trabajan con S3 para evitar otros problemas operativos.
Las referencias de los informes de los usuarios y la comunidad indican que estos problemas surgieron a principios de 2022 y se han discutido principalmente en temas de GitHub, Overflow y Foros de Laravel. El problema no está aislado a la biblioteca de medios, pero implica la interacción de los métodos de la biblioteca con los comportamientos de versión específicos del AWS SDK. Se recomienda a los usuarios que bloqueen o actualicen las dependencias cuidadosamente y supervisen SDK Changelogs para las correcciones relacionadas con las operaciones S3.
Los problemas, sus causas y los pasos de remediación que se encuentran en las discusiones comunitarias y los rastreadores de problemas oficiales proporcionan una comprensión integral para los desarrolladores que enfrentan desafíos similares con la Biblioteca de Medios de Laravel 9.11.4 y la integración de AWS S3. La conclusión principal es garantizar que las dependencias como el AWS SDK estén actuales y el monitoreo de conflictos de permiso o configuración que podrían imitar los errores de la biblioteca.