Boto3 là SDK hoặc thư viện Python có thể quản lý và truy cập nhiều dịch vụ khác nhau của AWS, chẳng hạn như Amazon S3, EC2, Dynamo DB, SQS, Cloudwatch, v.v. , thông qua tập lệnh python. Boto3 có cách tiếp cận dựa trên dữ liệu để tạo các lớp trong thời gian chạy từ các tệp mô tả JSON được chia sẻ giữa các SDK. Do Boto 3 được tạo từ các tệp JSON được chia sẻ này nên người dùng sẽ nhận được các bản cập nhật nhanh chóng cho các dịch vụ mới nhất và một API nhất quán trên các dịch vụ. Nó cung cấp API hướng đối tượng và dễ sử dụng cũng như truy cập dịch vụ trực tiếp cấp thấp
Các tính năng chính của boto3
- Nó được xây dựng dựa trên botocore- một thư viện Python được sử dụng để gửi các yêu cầu API tới AWS và nhận phản hồi từ dịch vụ
- Hỗ trợ Python2. 7+ và 3. 4+ nguyên bản
- Boto3 cung cấp các phiên và thông tin xác thực & cấu hình mỗi phiên, cùng với các thành phần thiết yếu như xác thực, tham số và xử lý phản hồi
- Có giao diện nhất quán và cập nhật
Làm việc với AWS S3 và Boto3
Nguồn. https. //dashbird. io/blog/boto3-aws-python/
Cài đặt boto3 và Xây dựng AWS S3 Client
Cài đặt boto3 vào ứng dụng của bạn
Trên Terminal, sử dụng mã
pip list
Đoạn mã trên sẽ liệt kê các gói đã cài đặt. Nếu Boto3 chưa được cài đặt, hãy cài đặt nó bằng mã sau
pip install boto3
Xây dựng ứng dụng khách S3 để truy cập các phương thức dịch vụ
Tạo ứng dụng khách S3 giúp truy cập các đối tượng được lưu trữ trong môi trường S3 và đặt thông tin đăng nhập, bao gồm aws_access_key_id và aws_secret_access_key. Điều cần thiết là phải có thông tin đăng nhập như Khóa truy cập và Khóa bí mật để truy cập bộ chứa S3 và chạy mã sau
# Import the necessary packages import boto3 # Now, build a client S3 = boto3.client[ 's3', aws_access_key_id = 'enter your_aws_access_key_id ', aws_secret_access_key = ' enter your_aws_secret_access_key ', region_name = ' enter your_aws_region_name ' ]
Hoạt động của AWS S3 với boto3
Tạo thùng
Để tạo một bộ chứa S3, hãy sử dụng phương thức create_bucket[] với các tham số Bộ chứa và ACL. ACL đại diện cho Danh sách kiểm soát truy cập quản lý quyền truy cập vào các đối tượng và bộ chứa S3. Điều quan trọng cần lưu ý là tên Nhóm phải là duy nhất trên toàn bộ nền tảng AWS
my_bucket = "enter your s3 bucket name that has to be created" bucket = s3.create_bucket[ ACL='private', Bucket= my_bucket ]
Để liệt kê tất cả các nhóm có sẵn, hãy sử dụng phương thức list_buckets[]
bucket_response = s3.list_buckets[] # Output the bucket names print['Existing buckets are:'] for bucket in bucket_response ['Buckets']: print[f' {bucket["Name"]}']
Một nhóm trong S3 có thể bị xóa bằng phương thức delete_bucket[]. Bộ chứa phải trống, có nghĩa là nó không chứa bất kỳ đối tượng nào để thực hiện thao tác xóa
my_bucket = "enter your s3 bucket name that has to be deleted" response = s3.delete_bucket[Bucket= my_bucket] print["Bucket has been deleted successfully !!!"]
Liệt kê các tệp từ một nhóm
Các tệp hoặc đối tượng từ bộ chứa S3 có thể được liệt kê bằng phương thức list_objects hoặc phương thức list_objects_v2
my_bucket = "enter your s3 bucket name from which objects or files has to be listed out" response = s3.list_objects[Bucket= my_bucket, MaxKeys=10, Preffix="only_files_starting_with_this_string"]
Đối số MaxKeys biểu thị số lượng đối tượng tối đa được liệt kê. Đối số tiền tố liệt kê các Đối tượng có khóa [tên] chỉ bắt đầu bằng một tiền tố cụ thể
Một cách khác để liệt kê các đối tượng
s3 = boto3.client["s3"] my_bucket = " enter your s3 bucket name from which objects or files has to be listed out " response = s3.list_objects_v2[Bucket=my_bucket] files = response.get["Contents"] for file in files: print[f"file_name: {file['Key']}, size: {file['Size']}"]
Để tải tệp lên thùng s3, hãy sử dụng phương thức upload_file[] có các tham số sau
- Tập tin. nó xác định đường dẫn của tệp sẽ được tải lên
- Chìa khóa. nó đại diện cho mã định danh duy nhất cho một đối tượng trong một nhóm
- Gầu múc. tên bộ chứa mà tệp phải được tải lên
Để tải xuống tệp hoặc đối tượng cục bộ từ bộ chứa, hãy sử dụng phương thức download_file[] với các tham số Khóa, Bộ chứa và Tên tệp
my_bucket = "enter your s3 bucket name from which object or files has to be downloaded" file_name = "enter file to be downloaded" key_name = "enter unique identifier" s3.download_file[Filename= file_name, Bucket= my_bucket, Key= key_name]
Để xóa một tệp hoặc đối tượng khỏi một nhóm, hãy sử dụng phương thức delete_object[] với các tham số Khóa và Nhóm
pip install boto30
Lấy siêu dữ liệu của đối tượng
Để lấy thông tin chi tiết của tệp hoặc đối tượng, chẳng hạn như thời gian sửa đổi lần cuối, lớp lưu trữ, độ dài nội dung, kích thước theo byte, v.v. , hãy sử dụng phương thức head_object[] với các tham số Key và Bucket
pip install boto31
Phần kết luận
AWS S3 là một trong những hệ thống lưu trữ đối tượng đáng tin cậy, linh hoạt và bền bỉ nhất cho phép người dùng lưu trữ và truy xuất dữ liệu. AWS định nghĩa boto3 là thư viện Python hoặc SDK [Bộ công cụ phát triển phần mềm] để tạo, quản lý và định cấu hình các dịch vụ AWS, bao gồm cả S3. Boto3 vận hành các dịch vụ AWS theo cách có lập trình từ các ứng dụng và dịch vụ của bạn
- AWS S3 là một dịch vụ lưu trữ đối tượng giúp lưu trữ và truy xuất tệp nhanh chóng
- Boto3 là SDK hoặc thư viện Python có thể quản lý Amazon S3, EC2, Dynamo DB, SQS, Cloudwatch, v.v.
- Máy khách Boto3 cung cấp giao diện cấp thấp cho các dịch vụ AWS, trong khi tài nguyên là bản tóm tắt cấp cao hơn máy khách
- Sử dụng thư viện Boto3 với Amazon S3 cho phép người dùng tạo, liệt kê, xóa và cập nhật Bộ chứa S3, Đối tượng, Chính sách bộ chứa S3, v.v. , từ các chương trình hoặc tập lệnh Python theo cách nhanh hơn
Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả