Có những vấn đề được biết đến với thư viện truyền thông Laravel phiên bản 9.11.4 liên quan cụ thể đến các hoạt động S3. Một vấn đề quan trọng xuất hiện trong quá trình nâng cấp phiên bản này liên quan đến các lỗi khi xóa các tệp khỏi thùng S3. Người dùng quan sát thấy rằng trong khi sử dụng Laravel Media Library 9.11.3, việc xóa tệp trên S3 hoạt động hoàn hảo, nhưng sau khi nâng cấp lên 9.11.4, việc xóa các tệp phương tiện khỏi S3 bắt đầu dẫn đến lỗi. Thông báo lỗi phổ biến là một yêu cầu xấu AWS HTTP 400, nêu bật một tiêu đề cần thiết bị thiếu trong yêu cầu cụ thể, "Nội dung-MD5 hoặc X-AMZ-Checksum-*" đã bị thiếu trong các tiêu đề yêu cầu xóa.
Lỗi này đã dẫn đến vấn đề mà các bản ghi cơ sở dữ liệu của phương tiện đã bị xóa, nhưng các tệp tương ứng trong thùng S3 không bị xóa. Người dùng báo cáo gặp nhiều lỗi thuộc loại này một cách nhất quán trong các hoạt động xóa. Lỗi xảy ra cụ thể với các yêu cầu POST đến điểm cuối của S3 Onbock của S3. Các yêu cầu không thành công do các tiêu đề không đầy đủ hoặc thiếu do AWS S3 dự kiến cho các hoạt động xóa hàng loạt.
Cuộc điều tra của cộng đồng và các nhà bảo trì tiết lộ rằng sự bất thường này không phải là trực tiếp do những thay đổi trong chính mã thư viện truyền thông Laravel nhưng đã được truy nguyên từ một lỗi trong SDK AWS cơ bản cho PHP (AWS/AWS-SDK-PHP). Các phiên bản có vấn đề của SDK AWS, đáng chú ý là phiên bản 3.209.31, đã giới thiệu các vấn đề tiêu đề trong các yêu cầu đối tượng xóa cho S3. Bạn nên kiểm tra phiên bản AWS SDK đã cài đặt bằng Trình soạn thảo và cập nhật nó lên các phiên bản 3.211.x trở lên để khắc phục sự cố. Sau khi nâng cấp SDK AWS một cách độc lập, người dùng đã báo cáo rằng các lỗi xóa đã ngừng xảy ra.
Ngoài lỗi liên quan đến xóa này, một số người dùng đã báo cáo gặp phải lỗi cuộc gọi API S3 không liên tục sau khi nâng cấp lên Thư viện truyền thông Laravel 9.11.4. Đã có sự tham gia của việc sử dụng "FORCEDELETE ()" trong các phương thức nội bộ của thư viện thay đổi cách xử lý xóa, có thể đã phơi bày hoặc khuếch đại lỗi liên quan đến SDK AWS. Một số người dùng cũng đề cập đến các biến chứng phát sinh khi sử dụng xóa mềm trên các mô hình của họ, có thể che giấu hoặc ảnh hưởng đến cách xóa S3 được kích hoạt.
Ngoài việc xóa các vấn đề, đã có những thách thức khác được báo cáo bởi người dùng khi kết hợp thư viện truyền thông Laravel với S3, mặc dù không gắn liền với phiên bản 9.11.4. Ví dụ: một số người dùng phải đối mặt với các vấn đề liên quan đến tính năng tải lên tạm thời trong Thư viện phương tiện Pro khi được cấu hình để tải lên trực tiếp lên S3. Các vấn đề như biến mất tệp bất ngờ từ S3 sau khi hoàn tất tải lên, lỗi mở các tệp cục bộ tạm thời và sắc thái cấu hình là các chủ đề phổ biến. Những vấn đề này thường xuất phát từ cách các tệp tạm thời được quản lý cục bộ và được đồng bộ hóa với cấu hình đĩa S3 và thời gian hoặc chuỗi các hoạt động lưu trên các mô hình giữ các tệp đính kèm phương tiện.
Một loại khác của các vấn đề được báo cáo liên quan đến quyền và kiểm soát truy cập trên các thùng S3. Chẳng hạn, nếu nhóm S3 là riêng tư, tải lên hoặc xóa có thể thất bại nếu chính sách IAM hoặc chính sách xô không cấp đủ quyền truy cập vào ứng dụng Laravel, dẫn đến các lỗi truy cập. Điều này đôi khi có thể bị nhầm lẫn với các vấn đề thư viện hoặc SDK nhưng thực sự là do mô hình quyền AWS.
Một số người dùng cũng gặp phải hành vi bất ngờ trong chuyển đổi phương tiện (thay đổi kích thước hình ảnh, thay đổi định dạng) khi làm việc với các đĩa S3. Điều này đặc biệt được nhấn mạnh cho các chuyển đổi xử lý xếp hàng trong đó cấu hình đĩa hoặc môi trường công nhân có thể thiếu truy cập hoặc có thời gian chờ khiến chuyển đổi bị lỗi hoặc không kích hoạt đúng. Mặc dù những vấn đề này chung chung với việc sử dụng quy mô lớn của thư viện truyền thông Laravel và các công việc xếp hàng, chúng giao nhau với việc sử dụng S3 trong sản xuất.
Tóm lại, vấn đề được xác nhận chính được xác nhận với Laravel Media Library 9.11.4 và S3 tích hợp bản lề về lỗi xóa do lỗi AWS SDK PHP ngược dòng, kích hoạt các tiêu đề cần thiết để xóa các yêu cầu, gây ra xóa tệp không thành công trên S3. Nâng cấp AWS PHP SDK đã giải quyết vấn đề này. Bên cạnh đó, người dùng nên đảm bảo quyền xô S3 thích hợp và nhận thức được các trường hợp cạnh với tải lên tạm thời và chuyển đổi phương tiện được xếp hàng khi làm việc với S3 để tránh các vấn đề hoạt động khác.
Tài liệu tham khảo từ các báo cáo của người dùng và cộng đồng chỉ ra rằng những vấn đề này đã xuất hiện vào đầu năm 2022 và đã được thảo luận chủ yếu về các vấn đề của GitHub, Stack Overflow và Diễn đàn Laravel. Vấn đề không được phân lập với thư viện phương tiện mà liên quan đến sự tương tác của các phương thức của thư viện với các hành vi phiên bản cụ thể của SDK AWS. Người dùng được khuyến nghị khóa hoặc nâng cấp các phụ thuộc một cách cẩn thận và giám sát các thay đổi SDK cho các bản sửa lỗi liên quan đến các hoạt động S3.
Các vấn đề, nguyên nhân của chúng và các bước khắc phục như được tìm thấy trong các cuộc thảo luận cộng đồng và trình theo dõi vấn đề chính thức cung cấp sự hiểu biết toàn diện cho các nhà phát triển phải đối mặt với các thách thức tương tự với Thư viện truyền thông Laravel 9.11.4 và tích hợp AWS S3. Takeaway chính là đảm bảo các phụ thuộc như AWS SDK là hiện tại và giám sát cho sự cho phép hoặc xung đột cấu hình có thể bắt chước các lỗi thư viện.