Laravel s3 amazon hoạt động như thế nào?



Các bạn làm laravel chắc chắn không còn lạ gì với filesystem trong laravel. Một trong những chức năng hỗ trợ việc tương tác với File trong dự án sử dụng laravel. Đặc biệt laravle filesystem hỗ trợ upload lên nhiều bên thứ 3 như amazon s3, FTP,…

Ở bài viết này mình muốn chỉ rõ nguyên lý làm việc của Laravle với S3 amazon.

Laravel sẽ lấy giá trị config S3 amazon như thế nào?

Đầu tiên, chúng ta có những config để upload tới S3 amazon như dưới

Những thông số này các bạn quá hiểu rõ rồi đúng ko. Bình thường bạn sẽ khai báo chúng ở trong file .env để Laravel nhận được những giá trị đó. Vậy nếu 2 biến AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY không được khai báo trong file .env thì sẽ như thế nào?

2 giá trị AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY được gọi là credentials. Giờ chúng ta xem Laravel get credentials như thế nào?

Laravel lấy credentials cho S3 amazon như thế nào?

Đây là đoạn code upload 1 file tới S3 amazon

Khi thực thi đoạn code trên, Laravel sẽ cố gắng tìm AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY (credentials) theo 3 bước sau:

– Bước 1: Tìm credentials trong file .env. Nếu không có thì sẽ sang bước 2

– Bước 2: Tìm credentials trong credentials file của hệ thống (Cái này chỉ hoạt động trên server EC2 của amazon). Nếu không có thì sang bước 3

– Bước 3: Tìm credentials trong instance metadata (Cái này chỉ hoạt động trên server EC2 của amazon)

Tại bước 2, credentials file của hệ thống nằm ở đâu. Mặc định nó sẽ nằm tại đường dẫn

Đây là function tìm credentials trong Laravel, các bạn có thể tham khảo

Tổng kết: Nếu hiểu rõ việc cấu hình upload file trong S3 amazon, bạn không cần config AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY trong file .env mà hệ thống vẫn có thể upload file tới S3 amazon. Điều này cũng góp phần tăng độ bảo mật cho hệ thống Laravel. Chúc các bạn thành công!.

Bình luận

Bài viết cùng chuyên mục