Sử dụng amazon s3 lưu trữ file laravel
Bài đăng này đã không được cập nhật trong 6 năm
Giới thiệu
Laravel filesystem giúp bạn dễ dàng thao tác với file. Mặc định laravel dùng Local Driver
để lưu trữ file. Bài này sẽ hướng dẫn các bạn sử dụng amazon S3 để lưu trữ file
Bắt đầu
1. Tạo Bucket trên S3
Đầu tiền là bạn phải có tài khoản amazon web service trước. Amazon đang có trương trình miễn phí cho tài khoản đăng ký mới tại đây.
Đầu tiên bạn đăng nhập vào aws console -> Chọn S3
-> Create bucket
Tiếp theo thì cứ next.
2. Lấy Access key S3
Sau khi đã tạo bucket thì tiếp theo sẽ lấy access key. Từ giao diện trang chủ bạn truy cập IAM
Nhấn vào Users
trên thanh menu bên trái -> Chọn user. Để đảm bảo về bảo mật bạn có thể tạo thêm 1 user mới chỉ dùng để truy cập S3. Ở đây thì mình dùng đã tạo rồi.
Sau đó click vào Create access key
. Bạn sẽ nhận được Acess key ID
và Secret access key
. Nhớ lưu lại để còn dùng sau này
3. Config laravel
Kế tiếp là config trên laravel. Mở file .env
và thêm dòng sau vào
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=
AWS_URL=
FILESYSTEM_DRIVER=s3
AWS_ACCESS_KEY_ID
là key đã lấy ở bước trước, AWS_SECRET_ACCESS_KEY
là secret key đã lấy từ bước trước. AWS_DEFAULT_REGION
là Region khi bạn chọn tạo S3. Như bước trước thì mình tạo ở Asia Pacific
thì sẽ ghi là ap-southeast-1
. Bạn có thể xem thêm ở đây https://docs.aws.amazon.com/general/latest/gr/rande.html . AWS_BUCKET
là tên bucket của bạn như mình là s3-laravel-testtttt
. AWS_URL
thì sẽ có dạng https://AWS_BUCKET
.s3-AWS_DEFAULT_REGION
.amazonaws.com.
4. Cài thư viện
Như trên docs của laravel có ghi là để sử dụng S3 driver bạn sẽ phải cài thư viện league/flysystem-aws-s3-v3
Mở terminal lên và chạy
composer require league/flysystem-aws-s3-v3
5. Sử dụng
Sau khi hoàn thành các bước trên, Bạn có thể thêm, xóa file như bình thường và file sẽ được lưu trên S3 thay vì lưu ở thư mục local.
Tài liệu tham khảo
All rights reserved