Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 版本9.11.4中的Laravel Media库和S3是否有任何已知问题


版本9.11.4中的Laravel Media库和S3是否有任何已知问题


Laravel Media Library版本9.11.4与S3操作有关的已知问题报告了。在此版本中升级期间出现的一个重要问题涉及从S3存储桶中删除文件时出现的错误。用户观察到,在使用Laravel Media库9.11.3时,S3上的文件删除效果很好,但是在升级到9.11.4之后,从S3中删除媒体文件就会导致错误。常见的错误消息是AWS HTTP 400不良请求,突出了请求中缺少所需的标头 - “删除请求标题中缺少content-md5或x-amz-checksum-*”。

此错误导致了删除媒体数据库记录的问题,但是未删除S3存储桶中的相应文件。用户报告说,在删除操作期间始终遇到此类型的多个错误。该错误专门发生在S3 Buccet的`/?delete`端点上的邮政请求中。该请求由于AWS S3预期的批次删除操作而导致的不完整或缺失的标头导致的请求失败。

社区和维护者的调查表明,这种异常不是由Laravel Media库代码本身的变化直接引起的,而是可以追溯到基础AWS SDK中的一个错误(AWS/AWS/AWS-SDK-PHP)。 AWS SDK的有问题版本,尤其是版本3.209.31,在删除对象请求S3中引入了标头问题。建议使用Composer检查已安装的AWS SDK版本,并将其更新为3.211.x或更高版本以解决问题。在独立升级AWS SDK之后,用户报告说,删除错误不再发生。

除了此与删除相关的错误外,一些用户还报告说,升级到Laravel Media Library 9.11.4后遇到间歇性S3 API调用失败。在图书馆的内部方法中使用“ forcelete()”的使用参考,更改了处理删除的方式,可能已经暴露或放大了与AWS SDK相关的错误。一些用户还提到了在模型上使用软删除时引起的并发症,这可能会掩盖或影响S3删除的方式。

除删除问题外,在将Laravel Media库与S3相结合时,用户还报告了其他挑战,尽管并非专门与版本9.11.4绑定。例如,某些用户在配置为直接上传到S3时面临与媒体库Pro中临时上传功能有关的问题。最终上传后,S3的意外文件消失,打开临时本地文件和配置细微差别等问题是常见的主题。这些问题通常源于如何在本地管理临时文件并与S3磁盘配置以及保存媒体附件的模型上保存操作的时机或顺序。

报告的另一类问题与S3存储桶上的权限和访问控件有关。例如,如果S3存储桶是私有的,则如果IAM策略或存储措施策略无法授予对Laravel应用程序的足够访问,则上传或删除可能会失败。有时可以将其与库或SDK问题混淆,但实际上是由于AWS权限模型。

使用S3磁盘时,一些用户还遇到了媒体转换(图像调整,格式更改)中的意外行为。对于排队的处理转换而言,这尤其突出显示,在该转换中,磁盘配置或工作者环境可能缺乏访问或超时导致转换失败或没有正确触发的超时。尽管通过大规模使用Laravel Media图书馆和排队的工作,这些问题更为笼统,但它们与S3使用中的生产相交。

总而言之,由于上游AWS SDK PHP错误,Laravel Media库9.11.4和S3 Integration在删除错误上取决于已知的已知问题,从而触发了删除请求的缺少所需的标头,从而导致S3上的失败文件删除。升级AWS PHP SDK解决了此问题。除此之外,用户应确保适当的S3存储桶权限,并在与S3一起工作时暂时上传和排队媒体转换的边缘案例以避免其他操作问题。

用户和社区报告的参考文献表明,这些问题左右左右出现,主要在GitHub问题,堆栈溢出和Laravel论坛上进行了讨论。这个问题不是隔离到媒体库,而是涉及库方法与AWS SDK的特定版本行为的相互作用。建议用户仔细锁定或升级依赖项,并监视与S3操作相关的修复程序的SDK ChangElogs。

社区讨论和官方问题跟踪器中发现的问题,原因和补救步骤为面对Laravel Media Library 9.11.4和AWS S3集成面临类似挑战的开发人员提供了全面的理解。主要要点是确保像AWS SDK这样的依赖关系是当前的,并监视可能模仿库错误的权限或配置冲突。