Upload File To Amazon AWS S3 Bucket

Posted by

1. Tản mạn ngoài lề

alt text

Một vấn đề khá cũ. Chắc nhiều người đã biết và nắm rõ. Mình viết ra đây xem như là note cho bản thân mình.

Mục đích: Lưu trữ file trên Amazon AWS S3

Mình xin nói qua đại ý các bước để upload một file lên Amazon Aws S3 trong bài viết này.

  • Tạo tài khoản trên https://aws.amazon.com/vi/
  • Tạo giao diện để upload file. Ở đây mình sử dụng Laravel
  • Upload file

Let’s go.

2. Tạo tài khoản amazon và tạo Bucket để chứa file upload.

Các bạn vào https://aws.amazon.com/vi/s3/ rồi đến Get started with Amazon S3 và đăng ký thôi. Cái điểm lưu ý nhất chắc là ở đoạn nhập tài khoản thẻ. Bạn cần thẻ VISA hoặc thẻ tương tự.
Xong khi đăng ký xong thì sẽ có giao diện như thế này

alt text

Tạo một Bucket để upload file lên

  • Vào Create bucket
  • Name and region: mình để thaivd-demo ở phần Name và chọn Asia Pacific (Tokyo) ở phần Region.
  • Configure options: Mình Next theo mặc định.
  • Set permissions: Mình Next theo mặc định.
  • Review: Create Bucket.

Bạn có thể xem tại đây.
https://www.screencast.com/t/0ZZNvZ6U1ZOq

3. Tạo giao diện để upload file

Ở bài viết này mình sử dụng Laravel. Việc tạo 1 project bằng Homestead đã có hướng dẫn chi tiết tại https://laravel.com/docs/5.7/homestead nên mình không viết vào đây tránh việc bài quá dài.

alt text

a. Mình tạo giao diện để upload file. Ở đây mình tạo file fileUpload.blade.php

Ở đoạn này có những phần cần chú ý: method=”POST”, enctype=”multipart/form-data”, thêm @csrf

b. Chúng ta vào routes/web.php xem cần chú ý gì.

alt text


Ở đây Folder-upload chính là folder chứa những file mình up lên AWS S3. s3 chính là Drives

c. Mình sẽ mở file config/filesystems.php xem có gì liên quan đến s3 này

alt text

Như chúng ta đã thấy thì ở đây có config các thông số liên quan đến AWS: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_BUCKET, AWS_URL

Các thông số này chứa trong file .env. Vậy

d. Mình sẽ mở file .env (Bạn thêm các thông số vào nếu chưa có)

alt text

Vậy là việc bây giờ chúng ta sẽ tìm các thông số tương ứng để điền vào là gần như hoàn thành.

4. Upload file

Bạn quay lại https://s3.console.aws.amazon.com/s3/home?region=us-east-1

alt text

  • Chọn ở tài khoản mình (thaivd) -> My Security Credentials
  • Chọn Users -> Add user. Ở đây mình tick vào Programmatic access và Next
  • Tiếp sang Attach existing policies directly tìm AmazonS3FullAccess để tick rồi Next: Tags
  • Ở đây chúng ta sẽ có 2 thông số AWS_ACCESS_KEY_ID và AWS_SECRET_ACCESS_KEY để điền vào file .env
alt text

5. Công đoạn cuối

Mình thử upload file xem thế nào thì gặp lỗi này

alt text

Bạn chạy thêm composer require league/flysystem-aws-s3-v3

alt text

Sau đó chạy thêm artisan config:clear để xóa cache –> Quan trọng

Và đây chính là thành quả sau khi upfile. Tà đa

Có thắc mắc gì thì mọi người cứ comment! Thanks !

Leave a Reply

Your email address will not be published. Required fields are marked *