Khi bạn cần lưu trữ file trên cloud thay vì trên server nội bộ, Amazon S3 là lựa chọn phổ biến nhờ độ tin cậy cao, tốc độ nhanh và khả năng mở rộng linh hoạt.

Trong bài viết này, mình sẽ hướng dẫn bạn từng bước để:

  • Tạo S3 bucket
  • Lấy Access Key và Secret Key
  • Cấu hình quyền cơ bản để ứng dụng có thể truy cập S3

💡 Bài viết này sẽ được dùng làm nền tảng cho nhiều bài viết hướng dẫn khác, trong đó có series File Upload trong Laravel.

I. Đăng nhập AWS và truy cập dịch vụ S3

Đầu tiên, truy cập https://aws.amazon.com/ và đăng nhập bằng tài khoản AWS của bạn. Từ trang quản lý, tìm kiếm “S3” và chọn dịch vụ S3

II. Tạo S3 Bucket mới

Bấm vào nút Create bucket

  • Nhập tên bucket, ví dụ: laravel-file-upload-series.
  • Ở mục Block Public Access, nếu bạn muốn file được truy cập công khai:
    • Bỏ chọn “Block all public access”
    • Xác nhận bằng cách tick vào ô xác nhận
  • Bấm Create Bucket

Bucket mới đã được tạo thành công. Bạn cần lưu lại thông tin bucket name laravel-file-upload-series và AWS Region ap-southeast-1 để khai báo trong các ứng dụng cần truy cập vào Amazon S3.

III. Tạo Access Key để kết nối từ ứng dụng

1. Truy cập IAM

Từ menu dịch vụ, tìm và chọn IAM

2. Tạo User mới

Truy cập vào mục Users, Bấm vào nút Create User để tạo tài khoản mới

Nhập tên user và bấm Next

Chọn Attach policies directly, tìm S3 và tick chọn vào AmazonS3FullAccess (toàn quyền truy cập dịch vụ S3). Bấm Next

Bấm nút Create user để hoàn thành việc tạo user mới.

3. Tạo Access Key

Sau khi tạo xong user mới, bấm vào nút View user

Bấm Create access key

Chọn Use case bất kỳ và tick chọn xác nhận ở phần Confirmation. Sau đó bấm Next

Nhập vào chú thích (không bắt buộc) và bấm Create access key.

Access key cùng secret access key sẽ được hiển thị duy nhất một lần, bạn không thể xem lại sau khi thoát trang. Bạn cần lưu lại thông số này hoặc bấm vào nút Download .csv file để tải về. Bấm Done để hoàn thành.

IV. Thông tin cần ghi nhớ

Các thông tin bạn cần ghi nhớ để cấu hình trong các ứng dụng cần liên kết với S3

MụcGhi chú
Tên Bucketlaravel-file-upload-series
Regionap-southeast-1
Access Key ID(Copy từ IAM)
Secret Access Key(Copy từ IAM)

V. Kết nối với AWS CLI

Mình sẽ thử nghiệm kết nối với S3 bằng Access Key vừa tạo thông qua công cụ AWS CLI

Cài đặt AWS CLI bằng Homebrew (trên macOS)

brew install awscliCode language: Nginx (nginx)

Hoặc cài đặt bằng npm

npm install awscliCode language: Nginx (nginx)

Kiểm tra lại awscli đã cài đạt thành công chưa bằng lệnh

aws --versionCode language: Nginx (nginx)

Cấu hình thôgn số cho awscli

aws configureCode language: Nginx (nginx)

Nhập vào các thông tin cần thiết: Access Key ID / Secret Access Key / Region Name

AWS Access Key ID [None]: A*****************4
AWS Secret Access Key [None]: X**************************r
Default region name [None]: ap-southeast-1
Default output format [None]:Code language: Markdown (markdown)

Xem danh sách S3 bucket

aws s3 lsCode language: Nginx (nginx)

Danh sách các S3 Bucket đã tạo sẽ hiện ra ở đây.

VI. Lời kết

Trong bài viết này, mình đã chia sẻ cách:

  • Tạo một S3 Bucket trên AWS để lưu trữ file
  • Cấu hình quyền truy cập cơ bản để cho phép ứng dụng sử dụng bucket
  • Tạo Access KeySecret Key để các ứng dụng (như Laravel) có thể kết nối đến Amazon S3 qua API

Đây là những bước thiết lập nền tảng, cực kỳ quan trọng trước khi bạn triển khai chức năng upload file lên Amazon S3 trong bất kỳ ứng dụng web hoặc mobile nào.

Hẹn gặp lại trong bài viết [Phần 5] Upload file lên Amazon S3 của loạt bài File Upload trong Laravel – để xem cách áp dụng các kỹ thuật vừa học vào ứng dụng thực tế.

Nếu bạn cần hỗ trợ kỹ thuật miễn phí, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời trong thời gian sớm nhất.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *


Bạn cần hỗ trợ kỹ thuật chuyên sâu?

Khám phá các gói dịch vụ giúp bạn tối ưu công việc và vận hành hệ thống hiệu quả hơn. Từ chăm sóc website đến hỗ trợ kỹ thuật, mọi thứ đều linh hoạt và phù hợp với nhu cầu của bạn.