0

AWS S3 CLI

Trong bài viết này mình sẽ giới thiệu mọi người cách quản lý AWS S3 buckets bằng cách sử dụng AWS CLI. Các lệnh aws s3 bậc cao sẽ giúp đơn giản hóa việc quản lý các objects S3. Các lệnh này sẽ cho phép bạn quản lý nội dung của S3 trong chính nó và các thư mục cục bộ.

1, Install AWS CLI

Chúng ta sử dụng lệnh dưới đây để cài đặt aws cli trên ubuntu

sudo apt-get update
sudo apt-get install awscli

Kiểm tra xem đã cài đặt thành công chưa: aws --version

2, Configuring AWS CLI

Trước khi config chúng ta cần 1 IAM user, bạn có thể tham khảo để tạo IAM user tại đây. Để user sử dụng được aws s3 thì cần phải cấp quyển s3 cho user. Ở đây mình cấp full quyển S3 cho user luôn

Sau khi đã cài đặt xong aws cli, chúng ta sử dụng lệnh sau để config

aws configure

Sẽ có 4 thông số chúng ta cần set up

AWS Access Key IDAWS Secret Access Key có thể tạo sau khi tạo user như ở trên tại tab Security credentials

Default region namecó thể lựa chọn 1 trong các option tại đây

Default output format mình chọn json. Ngoài ra có thể thao khảo 1 số tùy chọn khác tại đây

3, Các câu lệnh cơ bản

1, Tạo bucket

aws s3 mb <target> [--option]

Ví dụ: aws s3 mb s3://new-bucket-232

Lệnh trên sẽ tạo 1 bucket mới có tên new-bucket-232

2, List bucket và objects

aws s3 ls <target> [--options]

Ví dụ aws s3 ls

Ví dụ trên sẽ list ra toàn bộ bucket mà user có quyền xem

Các bạn có thể đi sâu hơn vào 1 bucket

Ví dụ: aws s3 ls s3://s3-bucket-sample-222

3, Delete buckets

aws s3 rb <target> [--options]

Ví dụ: aws s3 rb s3://new-bucket-232

Mặc định thì lệnh trên chỉ có thể xóa được các bucket rỗng. Nếu muốn xóa các bucket đã có thêm option --force. Nhưng nếu sử dụng bucket version lệnh này cũng không cho phép bạn xóa bucket, bạn vẫn phải xóa hết content trước.

Lệnh sau sẽ xóa tất cả object, prefixes trong bucket, rồi xóa bucket

aws s3 rb s3://s3-bucket-sample-222 --force

4, Delete objects

aws s3 rm  <target> [--options]

Nếu bạn muốn xóa file image1.jpeg trong bucket new-bucket-232, sử dụng lệnh sau

aws s3 rm s3://new-bucket-232/image1.jpeg

Nếu muốn xóa 1 folder thì cần thêm option --recursive

aws s3 rm s3://new-bucket-232/new-bucket --recursive

5, Move Objects

aws s3 mv <source> <target> [--options]

Lệnh này sẽ giúp chúng ta di chuyển objects từ bucket này sang bucket khác, từ s3 xuống local và từ local lên server.

Ví dụ:

Chuyển toàn bộ object từ s3://new-bucket-232/example sang bucket new-bucket-233:

aws s3 mv s3://new-bucket-232/example s3://new-bucket-233/

Chuyển 1 file images.jpeg từ local lên bucket new-bucket-232:

aws s3 mv images.jpeg s3://new-bucket-233/

Kéo 1 file từ bucket new-bucket-232 về local:

aws s3 mv s3://new-bucket-233/images.jpeg ./

6, Copy Objects

aws s3 cp <source> <target> [--options]

Lệnh này cũng tương tự như lệnh move nhưng thay vì chuyển file gốc thì lệnh cp sẽ tạo file mới. Ngoài ra có thể sử dụng tham số '-' để truyền cho source và target

Ví dụ:

Ghi đè text "hello world" vào file text.txt trên bucket new-bucket-232

echo "hello world" | aws s3 cp - s3://new-bucket-232/text.txt

In ra text của file text.txt trên bucket new-bucket-232

aws s3 cp s3://new-bucket-232/text.txt -

7, Sync Objects

aws s3 sync <source> <target> [--options]

Lệnh trên sẽ đồng bộ các object ở 2 bucket hoặc giữa bucket với local. Những file nào bị thiếu ở source sẽ được copy từ target và ngược lại. Tuy nhiên có option --delete để remove những file, objects ở target mà không xuất hiện ở source.

Ví dụ: Đồng bộ giữa bucket new-bucket-232 và new-bucket-233

aws s3 sync s3://new-bucket-232 s3://new-bucket-233

Tham khảo

https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.