Cập nhật lần cuối: 2024/07/17 15:43:32
CMC S3 có thể tương tác được với hầu hết các SDK và tất cả các AWS S3 API mà bạn muốn.
Một SDK dường như là tập hợp hoàn chỉnh của các API cho phép thực hiện hầu hết các hành động để khởi tạo ứng dụng. Thêm vào đó SDK bao gồm các công cụ để phát triển nền tảng/ứng dụng. Một API nói cách khác là một loạt các phương pháp liên quan có thể tốt cho một mục đích cụ thể.
Ví dụ, SDK chứa API cũng như các trình biên dịch, runtimes và các thứ liên quan khác. API chỉ đơn giản là các đặc tả để thực thi một nhiệm vụ cố định với ngôn ngữ lập trình nào đó.
Đối với AWS S3 API, tài liệu này sẽ không mô tả lại những S3 API đó mà trong phần này sẽ hướng dẫn bạn cài đặt và cấu hình SDK trong đó có thể thực thi các S3 API để bạn đạt được mục đích của mình là tương tác thành công với với Object Storage của CMC.
Ví dụ đối với ngôn ngữ: Python & thư viện AWS SDK
Sử dụng SDK của AWS cho Python sẽ hỗ trợ gọi đến để thực thi các API của hệ thống CMC S3, gọi là boto3 đóng vai trò như một S3 client kết nối đến Object Storage (CMC S3).
1. Chuẩn bị trước khi bắt đầu:
2. Cài đặt boto3
Cài đặt SDK dành cho boto3 thông qua pip, thư viện quản lý của python được cài đặt mặc định trên phiên bản của python:
pip3 install boto3
3. Khởi tạo Client
Lấy các thông tin Access Key, Secret Key … , thêm các thông tin đó vào đoạn mã sau:
import boto3
cmc_obj_config = {
"aws_access_key_id": "điền thông tin access key", "aws_secret_access_key": "điền thông tin secret key","endpoint_url":"điền endpoint Hn hoặc HCM",
}
client = boto3.client("s3", **cmc_obj_config)
4. Lấy về thông tin Policy của một Bucket
Lấy thông tin Bucket policy bằng việc gọi hàm “get_bucket_policy”. Hàm này sẽ hỗ trợ lấy theo tên của bucket.
s3 = boto3.client('s3')
result = s3.get_bucket_policy(Bucket='BUCKET_NAME') print(result['Policy'])
5. Áp dụng một Policy cho Bucket
Một bucket policy có thể được tạo hoặc thiết lập bằng việc gọi hàm “put_bucket_policy”. Policy được định nghĩa dưới dạng JSON. Policy được định nghĩa theo mẫu dưới cho phép bất kỳ một người dùng nào có thể truy cập object được lưu trong bucket với tên “bucket_name”.
#create a bucket policy
bucket_name = 'BUCKET_NAME'
bucket_policy = {
'Version': '2012-10-17',
'Statement': [{
'Sid': 'AddPerm',
'Effect': 'Allow',
'Principal': '*',
'Action': ['s3:GetObject'],
'Resource': f'arn:aws:s3:::{bucket_name}/*'
}]
}
#convert the policy from json to string
bucket_policy = json.dumps(bucket_policy
#set the new policy
s3 = boto3.client('s3') s3.put_bucket_policy(Bucket=bucket_name,Policy=bucket_policy)
6. Xóa 1 policy trên bucket
Việc xóa một bucket policy được thực hiện thông qua việc gọi hàm “delete_bucket_policy".
s3 = boto3.client('s3') s3.delete_bucket_policy(Bucket='BUCKET_NAME')
7. Liệt kê buckets
Liệt kê các bucket, tham khảo list_bucket() để biết chi tiết, cú pháp và ví dụ:
response = client.list_buckets()
for bucket in response['Buckets']:
print(bucket['Name'])
8. Tạo bucket
Tạo một bucket mới, nơi bạn lưu trữ các object.
client.create_bucket(Bucket='example-bucket')
9. Xóa bucket
Xóa một bucket rỗng. Nếu bucket vẫn còn chứa các object, chúng phải được xóa đi hết trước khi xóa bucket. Tham khảo delete_bucket() để biết thêm chi tiết.
client.delete_bucket(Bucket='example-bucket')
10. Liệt kê Object
Liệt kê tất cả các object bên trong môt một bucket. Tham khảo list_object() để biết thêm chi tiết
Liệt kê tất cả object bên trong bucket: example-bucket
response = client.list_objects(Bucket='example-bucket')
for object in response['Contents']:
print(object['Key'])
11. Upload 1 Object
Upload một object lên một bucket nhất định. Tham khảo upload_file() để biết thêm chi tiết Upload file “file.txt” được đặt ở cùng thư mục (hoặc đường dẫn đến thư mục) với script sau đây, tên của bucket: example-bucket, tên file: file.txt, key: tên của object bạn muốn đặt tên, bao gồm cả đường dẫn bất kỳ
client.upload_file(Filename='file.txt', Bucket='example-bucket', Key='file.txt')
12. Download một object
Download file “file.txt” được lưu ở bucket: example-bucket xuống thành file “file.txt” ở cùng thư mục với đoạn mã dưới đây.
client.download_file(Bucket='example-bucket', Key='file.txt', Filename='file.txt')
13. Xóa một object hoặc một thư mục
Xóa một object khỏi một bucket. Tham khảo delete_object() để biết thêm chi tiết Xóa một object với tên “file.txt” khỏi bucket: example-bucket
client.delete_object(Bucket='example-bucket', Key='file.txt')
Điều khoản & Chính sách