Trong bài viết này, chúng ta sẽ học cách tạo một thùng S3 bằng thư viện Python Boto3. Chúng ta cũng sẽ xem các bước để xóa thùng đã tạo. Chúng ta sẽ sử dụng "create_bucket" & "delete_bucket" để tạo và xóa một bucket tương ứng.
Trước khi tiến hành, tôi cho rằng bạn đã quen thuộc với bucket S3, nhưng nếu bạn chưa quen với dịch vụ bucket S3, hãy nhấp vào đây để tìm hiểu cách tạo bucket từ AWS Console.
Để kiểm tra phiên bản Python trên hệ thống của bạn, hãy sử dụng lệnh sau.
which python
/usr/bin/python --version
HOẶC
python --version
Nếu bạn không có pip và đang sử dụng Ubuntu, hãy thực hiện lệnh sau để cập nhật kho lưu trữ cục bộ trước.
sudo apt update
Để cài đặt pip, hãy sử dụng lệnh sau.
sudo apt install python-pip
Để kiểm tra phiên bản Pip đã cài đặt, hãy thực thi lệnh sau.
pip --version
Sau khi bạn có python và pip, bạn có thể cài đặt Boto3.
Cài đặt Boto3 rất đơn giản và dễ dàng. Để cài đặt Boto3, hãy sử dụng lệnh sau.
pip install boto3
Để kiểm tra xem Boto3 đã được cài đặt chưa và phiên bản của nó là bao nhiêu, hãy thực hiện lệnh sau.
pip show boto3
Cú pháp yêu cầu của phương thức create_bucket
Cú pháp yêu cầu của phương thức delete_bucket
config.properties
Bây giờ, hãy tạo tệp "create-s3-bucket.py" và thêm mã sau vào đó. Mã này sẽ đọc các giá trị được xác định trong bước trước và tạo một bucket có tên bạn xác định trong tệp này. Ở đây, tôi sẽ tạo một thùng có tên là "rahul-boto3-test-delete", hãy thay đổi thành thùng bạn muốn.
vim create-s3-bucket.py
Tạo tệp "delete-s3-bucket.py" chứa mã để xóa một thùng. Sao chép-dán mã sau vào đó.
vim delete-s3-bucket.py
Bây giờ bạn đã sẵn sàng tạo một thùng.
Để tạo một thùng, hãy chạy tệp "create-s3-bucket.py" bằng lệnh sau.
pythoncreate-s3-bucket.py
Nếu bạn không còn cần thùng nữa và muốn xóa nó, hãy chạy tệp "delete-s3-bucket.py" bằng lệnh sau.
pythondelete-s3-bucket.py
Trước khi tiến hành, tôi cho rằng bạn đã quen thuộc với bucket S3, nhưng nếu bạn chưa quen với dịch vụ bucket S3, hãy nhấp vào đây để tìm hiểu cách tạo bucket từ AWS Console.
Điều kiện tiên quyết
- Tài khoản AWS (Tạo nếu bạn chưa có)
- Hiểu biết cơ bản về S3
- Hiểu biết cơ bản về Python
- Python có sẵn trên hệ thống
Những gì chúng ta sẽ làm
- Cài đặt Boto3
- Biết các phương pháp cần thiết.
- Tạo và xóa thùng S3.
Cài đặt các phụ thuộc Boto3
Python mặc định có trong Ubuntu Server, vì vậy bạn không cần phải cài đặt nó.Để kiểm tra phiên bản Python trên hệ thống của bạn, hãy sử dụng lệnh sau.
which python
/usr/bin/python --version
HOẶC
python --version
Nếu bạn không có pip và đang sử dụng Ubuntu, hãy thực hiện lệnh sau để cập nhật kho lưu trữ cục bộ trước.
sudo apt update
Để cài đặt pip, hãy sử dụng lệnh sau.
sudo apt install python-pip
Để kiểm tra phiên bản Pip đã cài đặt, hãy thực thi lệnh sau.
pip --version
Sau khi bạn có python và pip, bạn có thể cài đặt Boto3.
Cài đặt Boto3 rất đơn giản và dễ dàng. Để cài đặt Boto3, hãy sử dụng lệnh sau.
pip install boto3
Để kiểm tra xem Boto3 đã được cài đặt chưa và phiên bản của nó là bao nhiêu, hãy thực hiện lệnh sau.
pip show boto3
Biết các phương thức cần thiết
Để tạo một bucket, chúng ta sẽ sử dụng phương thức "create_bucket".Sau đây là cú pháp của phương thức với tất cả các tham số mà nó có thể chấp nhận. Chúng ta sẽ không sử dụng tất cả các tham số này để tạo một Bucket nhưng bạn có thể thử nếu muốn.Cú pháp yêu cầu của phương thức create_bucket
Mã:
response = client.create_bucket( ACL='private'|'public-read'|'public-read-write'|'authenticated-read', Bucket='string', CreateBucketConfiguration={ 'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1' }, GrantFullControl='string', GrantRead='string', GrantReadACP='chuỗi', GrantWrite='chuỗi', GrantWriteACP='chuỗi', ObjectLockEnabledForBucket=True|False)
- ACL:ACL đóng hộp để áp dụng cho bucket.
- Bucket:Tên của bucket cần tạo. Tên này phải là duy nhất trên toàn cục và không có 2 bucket nào có cùng tên.
- CreateBucketConfiguration:Thông tin cấu hình cho bucket.
LocationConstraint:Chỉ định Vùng mà bạn muốn tạo bucket. Vùng US East (N. Virginia) (us-east-1) là vùng mặc định và các thùng được tạo tại đây nếu vùng không được chỉ định.. - GrantFullControl:Cho phép người được cấp quyền đọc, ghi, đọc ACP và ghi ACP trên thùng.
- GrantRead:Cho phép người được cấp liệt kê các đối tượng trong thùng.
- GrantReadACP:Cho phép người được cấp đọc ACL của thùng.
- GrantWrite:Cho phép người được cấp tạo, ghi đè và xóa bất kỳ đối tượng nào trong thùng.
- GrantWriteACP:Cho phép người được cấp viết ACL cho thùng áp dụng.
- ObjectLockEnabledForBucket:Chỉ định xem bạn có muốn S3 Khóa đối tượng được bật cho thùng mới.
Cú pháp yêu cầu của phương thức delete_bucket
Mã:
phản hồi = máy khách.delete_bucket( Thùng='string')
- Thùng:Chỉ định thùng đang bị xóa. Bạn cần chỉ định tên S3 Bucket mà bạn muốn xóa tại đây.
Tạo và xóa S3 Bucket
Tạo tệp "config.properties" sẽ chứa AWS Useraws_access_key_id_value, aws_secret_access_key_value và region của bạn. Thêm khóa của bạn vào tệp này.config.properties
Mã:
aws_access_key_id_value='ACCESS-KEY-OF-THE-AWS-ACCOUNT'aws_secret_access_key_value='SECRETE-KEY-OF-THE-AWS-ACCOUNT'region_name_value='eu-west-3'
Bây giờ, hãy tạo tệp "create-s3-bucket.py" và thêm mã sau vào đó. Mã này sẽ đọc các giá trị được xác định trong bước trước và tạo một bucket có tên bạn xác định trong tệp này. Ở đây, tôi sẽ tạo một thùng có tên là "rahul-boto3-test-delete", hãy thay đổi thành thùng bạn muốn.
vim create-s3-bucket.py
Mã:
import boto3def getVarFromFile(filename): import imp f = open(filename) global data data = imp.load_source('data', '', f) f.close()getVarFromFile('config.properties')client = boto3.client('s3', aws_access_key_id=data.aws_access_key_id_value, aws_secret_access_key=data.aws_secret_access_key_value)response = client.create_bucket( Bucket='rahul-boto3-test-delete', CreateBucketConfiguration={ 'LocationConstraint': 'eu-west-3', },)print (response)
Tạo tệp "delete-s3-bucket.py" chứa mã để xóa một thùng. Sao chép-dán mã sau vào đó.
vim delete-s3-bucket.py
Mã:
def getVarFromFile(filename): import imp f = open(filename) global data data = imp.load_source('data', '', f) f.close()getVarFromFile('config.properties')client = boto3.client('s3', aws_access_key_id=data.aws_access_key_id_value, aws_secret_access_key=data.aws_secret_access_key_value)response = client.delete_bucket(Bucket='rahul-boto3-test-delete')print (response)
Bây giờ bạn đã sẵn sàng tạo một thùng.
Để tạo một thùng, hãy chạy tệp "create-s3-bucket.py" bằng lệnh sau.
pythoncreate-s3-bucket.py
Nếu bạn không còn cần thùng nữa và muốn xóa nó, hãy chạy tệp "delete-s3-bucket.py" bằng lệnh sau.
pythondelete-s3-bucket.py