Cách đọc tệp s3 trong python

Amazon Simple Storage Service [Amazon S3] là bộ lưu trữ đối tượng thường được sử dụng cho các ứng dụng phân tích dữ liệu, học máy, trang web, v.v. Để bắt đầu làm việc theo chương trình với Amazon S3, bạn phải cài đặt AWS Software Development Kit [SDK]. Bài viết này sẽ đề cập đến AWS SDK dành cho Python có tên là Boto3

Boto3 là ​​SDK Python dành cho Amazon Web Services [AWS] cho phép bạn quản lý 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. Bạn có thể làm những việc tương tự như bạn đang làm trong Bảng điều khiển AWS của mình và thậm chí nhiều hơn thế, nhưng nhanh hơn, lặp lại và tự động. Sử dụng thư viện Boto3 với Amazon Simple Storage Service [S3] cho phép bạn dễ dàng tạo, cập nhật và xóa Bộ chứa S3, Đối tượng, Chính sách bộ chứa S3, v.v. khỏi các chương trình hoặc tập lệnh Python

Mục lục

  • điều kiện tiên quyết
  • Làm cách nào để kết nối với S3 bằng Boto3?
  • Làm cách nào để tạo bộ chứa S3 bằng Boto3?
    • Tạo Bộ chứa S3 bằng ứng dụng khách Boto3
    • Tạo Bộ chứa S3 bằng tài nguyên Boto3
  • Làm cách nào để liệt kê các Bộ chứa Amazon S3 bằng Boto3?
    • Liệt kê các Bộ chứa S3 bằng ứng dụng khách Boto3
    • Liệt kê các Bộ chứa S3 bằng tài nguyên Boto3
  • Làm cách nào để xóa Bộ chứa Amazon S3 bằng Boto3?
    • Xóa Bộ chứa S3 bằng ứng dụng khách Boto3
    • Xóa Bộ chứa S3 bằng tài nguyên Boto3
    • Xóa Bộ chứa S3 không trống bằng Boto3
  • Làm cách nào để tải tệp lên Bộ chứa S3 bằng Boto3?
    • Tải tệp lên Bộ chứa S3 bằng Boto3
    • Đang tải nhiều tệp lên bộ chứa S3
    • Tải dữ liệu đối tượng tệp đã tạo lên Bộ chứa S3 bằng Boto3
  • Làm cách nào để lấy danh sách các tệp từ Bộ chứa S3?
    • Kết quả lọc của thao tác danh sách S3 bằng Boto3
  • Làm cách nào để tải xuống tệp từ S3 Bucket?
  • Làm cách nào để đọc tệp từ nhóm S3 vào bộ nhớ?
  • Làm cách nào để xóa các đối tượng S3 bằng Boto3?
  • Làm cách nào để đổi tên đối tượng tệp S3 bằng Boto3?
  • Làm cách nào để sao chép các đối tượng tệp trong bộ chứa S3 bằng Boto3?
  • Làm cách nào để tạo Chính sách nhóm S3 bằng Boto3?
    • Làm cách nào để xóa Chính sách nhóm S3 bằng Boto3?
  • Làm cách nào để tạo URL do S3 chỉ định?
  • Làm cách nào để bật phiên bản Bộ chứa S3 bằng Boto3?
  • Bản tóm tắt
  • Những bài viết liên quan

điều kiện tiên quyết

Để bắt đầu tự động hóa các hoạt động của Amazon S3 và thực hiện lệnh gọi API đến dịch vụ Amazon S3, trước tiên bạn phải định cấu hình môi trường Python của mình

Nói chung, đây là những gì bạn cần cài đặt

  • Trăn 3
  • boto3
  • Công cụ AWS CLI

Làm cách nào để kết nối với S3 bằng Boto3?

Thư viện Boto3 cung cấp cho bạn hai cách để truy cập API để quản lý dịch vụ AWS

  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    bucket_name = "hands-on-cloud-demo-bucket"
    location = {'LocationConstraint': AWS_REGION}
    
    response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]
    
    print["Amazon S3 bucket has been created"]
    4 cho phép bạn truy cập dữ liệu API cấp thấp. Ví dụ: bạn có thể truy cập dữ liệu phản hồi API ở định dạng JSON
  • Tài nguyên cho phép bạn sử dụng các dịch vụ AWS theo cách hướng đối tượng cấp cao hơn. Để biết thêm thông tin về chủ đề này, hãy xem AWS CLI so với. botocore vs. boto3

Đây là cách bạn có thể khởi tạo ứng dụng khách Boto3 để bắt đầu làm việc với API Amazon S3

import boto3

AWS_REGION = "us-east-1"

client = boto3.client["s3", region_name=AWS_REGION]

Đây là một ví dụ về việc sử dụng phương pháp

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
5

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']

Ngay khi bạn khởi tạo ứng dụng khách Boto3 S3 hoặc tài nguyên trong mã của mình, bạn có thể bắt đầu quản lý dịch vụ Amazon S3

Làm cách nào để tạo bộ chứa S3 bằng Boto3?

Để tạo Bộ chứa Amazon S3 bằng thư viện Boto3, bạn cần có ứng dụng khách create_bucket hoặc tài nguyên create_bucket

Ghi chú. Mỗi Bộ chứa Amazon S3 phải có một tên duy nhất. Hơn nữa, tên này phải là duy nhất trên tất cả tài khoản AWS và khách hàng

Tạo Bộ chứa S3 bằng ứng dụng khách Boto3

Để tránh các trường hợp ngoại lệ khác nhau khi làm việc với dịch vụ Amazon S3, chúng tôi thực sự khuyên bạn nên xác định một Khu vực AWS cụ thể cho máy khách Boto3 và Cấu hình nhóm S3

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]

Đây là một đầu ra ví dụ

Tạo Bộ chứa S3 bằng tài nguyên Boto3

Tương tự, bạn có thể sử dụng tài nguyên Boto3 để tạo bộ chứa Amazon S3

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]

Đây là một đầu ra ví dụ

Làm cách nào để liệt kê các Bộ chứa Amazon S3 bằng Boto3?

Có hai cách liệt kê các Bộ chứa Amazon S3

  • phương thức list_buckets[] của tài nguyên máy khách
  • phương thức all[] của tài nguyên bộ chứa S3

Liệt kê các Bộ chứa S3 bằng ứng dụng khách Boto3

Dưới đây là ví dụ về việc liệt kê các Nhóm S3 hiện có bằng ứng dụng khách S3

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

response = client.list_buckets[]

print["Listing Amazon S3 Buckets:"]

for bucket in response['Buckets']:
    print[f"-- {bucket['Name']}"]
Đây là kết quả ví dụ.

Liệt kê các Nhóm S3 sử dụng tài nguyên Boto3

Dưới đây là ví dụ về việc liệt kê các Nhóm S3 hiện có bằng cách sử dụng tài nguyên S3

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

iterator = resource.buckets.all[]

print["Listing Amazon S3 Buckets:"]

for bucket in iterator:
    print[f"-- {bucket.name}"]

Đây là một đầu ra ví dụ

Làm cách nào để xóa Bộ chứa Amazon S3 bằng Boto3?

Có hai cách có thể xóa

Amazon S3 Bucket sử dụng thư viện Boto3
  • phương thức delete_bucket[] của máy khách S3
  • phương thức xóa [] của S3. tài nguyên nhóm

Xóa Bộ chứa S3 bằng ứng dụng khách Boto3

Dưới đây là ví dụ về cách xóa bộ chứa Amazon S3 bằng ứng dụng khách Boto3

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"

client.delete_bucket[Bucket=bucket_name]

print["Amazon S3 Bucket has been deleted"]
Đây là kết quả ví dụ.

Xóa Nhóm S3 bằng tài nguyên Boto3

Dưới đây là ví dụ về cách xóa bộ chứa Amazon S3 bằng ứng dụng khách Boto3

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"

s3_bucket = resource.Bucket[bucket_name]
s3_bucket.delete[]

print["Amazon S3 Bucket has been deleted"]

Đây là một đầu ra ví dụ

Xóa Bộ chứa S3 không trống bằng Boto3

Để xóa Bộ chứa S3 bằng thư viện Boto3, bạn phải dọn sạch Bộ chứa S3. Nếu không, thư viện Boto3 sẽ tăng ngoại lệ

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
6. Thao tác dọn dẹp yêu cầu xóa tất cả các đối tượng Bộ chứa S3 và các phiên bản của chúng

Liên kết được tài trợ
import boto3

AWS_REGION = "us-east-1"

client = boto3.client["s3", region_name=AWS_REGION]
1

Đây là một kết quả thực hiện

Làm cách nào để tải tệp lên Bộ chứa S3 bằng Boto3?

Thư viện Boto3 có hai cách để tải tệp và đối tượng lên Bộ chứa S3

  • phương thức upload_file[] cho phép bạn tải tệp lên từ hệ thống tệp
  • phương thức upload_fileobj[] cho phép bạn tải lên tệp dữ liệu đối tượng nhị phân [xem Làm việc với tệp trong Python]

Tải tệp lên Bộ chứa S3 bằng Boto3

Phương thức

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
7 yêu cầu các đối số sau

  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    bucket_name = "hands-on-cloud-demo-bucket"
    location = {'LocationConstraint': AWS_REGION}
    
    response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]
    
    print["Amazon S3 bucket has been created"]
    8 – tên tệp trên hệ thống tệp cục bộ
  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    bucket_name = "hands-on-cloud-demo-bucket"
    location = {'LocationConstraint': AWS_REGION}
    
    response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]
    
    print["Amazon S3 bucket has been created"]
    9 – tên của nhóm S3
  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    resource = boto3.resource["s3", region_name=AWS_REGION]
    
    bucket_name = "hands-on-cloud-demo-bucket"
    location = {'LocationConstraint': AWS_REGION}
    
    bucket = resource.create_bucket[
        Bucket=bucket_name,
        CreateBucketConfiguration=location]
    
    print["Amazon S3 bucket has been created"]
    0 – tên của tệp đã tải lên [thường bằng với
    #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    bucket_name = "hands-on-cloud-demo-bucket"
    location = {'LocationConstraint': AWS_REGION}
    
    response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]
    
    print["Amazon S3 bucket has been created"]
    8]

Dưới đây là ví dụ về cách tải tệp lên Bộ chứa S3

import boto3

AWS_REGION = "us-east-1"

client = boto3.client["s3", region_name=AWS_REGION]
7

Chúng tôi đang sử dụng mô-đun

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
2 để lấy đường dẫn vị trí tập lệnh và lưu nó vào biến
#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
3. Sau đó, chúng tôi tạo ra các

upload_files[] chịu trách nhiệm gọi ứng dụng khách S3 và tải tệp lên.

Tải nhiều tệp lên bộ chứa S3

Để tải nhiều tệp lên bộ chứa Amazon S3, bạn có thể sử dụng phương pháp

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
4 từ mô-đun
#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
5. Phương thức này trả về tất cả các đường dẫn tệp khớp với một mẫu nhất định dưới dạng danh sách Python. Bạn có thể sử dụng toàn cầu để chọn một số tệp nhất định theo mẫu tìm kiếm bằng cách sử dụng ký tự đại diện

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
0Đây là kết quả ví dụ. Liên kết được tài trợ

Tải dữ liệu đối tượng tệp đã tạo lên Bộ chứa S3 bằng Boto3

Nếu cần tải dữ liệu đối tượng tệp lên Bộ chứa Amazon S3, bạn có thể sử dụng phương thức

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
6 method . Phương pháp này có thể hữu ích khi bạn cần tạo nội dung tệp trong bộ nhớ [ví dụ] rồi tải nó lên S3 mà không lưu nó trên hệ thống tệp.

Ghi chú

phương thức
#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
6 method yêu cầu mở tệp ở chế độ nhị phân.

Dưới đây là ví dụ về cách tải tệp đã tạo lên Bộ chứa S3

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
1

Đây là một đầu ra ví dụ

Bật Mã hóa phía máy chủ S3 [SSE-S3] cho các đối tượng đã tải lên

Bạn có thể sử dụng mã hóa S3 Server-Side Encryption [SSE-S3] để bảo vệ dữ liệu của mình trong Amazon S3. Chúng tôi sẽ sử dụng mã hóa phía máy chủ, sử dụng thuật toán AES-256.
import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
2

Đây là một kết quả thực thi

Liên kết được tài trợ

Làm cách nào để nhận danh sách tệp từ Bộ chứa S3?

Phương pháp thuận tiện nhất để lấy danh sách tệp từ Bộ chứa S3 bằng Boto3 là ​​sử dụng Bộ chứa S3. các đối tượng. phương thức tất cả []

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
3

Đây là một đầu ra ví dụ

Kết quả lọc của thao tác danh sách S3 bằng Boto3

Nếu bạn cần lấy danh sách các đối tượng S3 có khóa bắt đầu từ một tiền tố cụ thể, bạn có thể sử dụng phương thức

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
8 để thực hiện việc này

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
4

Đây là kết quả đầu ra. Thay vì nhận tất cả các tệp, chúng tôi chỉ nhận các tệp có khóa bắt đầu từ tiền tố

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

resource = boto3.resource["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

bucket = resource.create_bucket[
    Bucket=bucket_name,
    CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
9

Làm cách nào để tải xuống tệp từ S3 Bucket?

Bạn có thể sử dụng phương thức

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

response = client.list_buckets[]

print["Listing Amazon S3 Buckets:"]

for bucket in response['Buckets']:
    print[f"-- {bucket['Name']}"]
0 để tải đối tượng S3 xuống hệ thống tệp cục bộ của mình

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
5

Đây là một ví dụ đầu ra

Làm cách nào để đọc tệp từ nhóm S3 vào bộ nhớ?

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
6

Đây là một đầu ra ví dụ

Làm cách nào để xóa các đối tượng S3 bằng Boto3?

Để xóa một đối tượng khỏi Amazon S3 Bucket, bạn cần gọi phương thức

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

response = client.list_buckets[]

print["Listing Amazon S3 Buckets:"]

for bucket in response['Buckets']:
    print[f"-- {bucket['Name']}"]
1 của thể hiện đối tượng đại diện cho đối tượng đó

Liên kết được tài trợ
import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
7

Đây là một ví dụ thực thi

Làm cách nào để đổi tên đối tượng tệp S3 bằng Boto3?

Không có lệnh gọi API nào để đổi tên đối tượng S3. Vì vậy, để đổi tên một đối tượng S3, bạn cần sao chép nó vào một đối tượng mới với tên mới và sau đó xóa đối tượng cũ

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
8

Đây là một kết quả thực hiện

Liên kết được tài trợ

Làm cách nào để sao chép các đối tượng tệp trong bộ chứa S3 bằng Boto3?

Để sao chép các đối tượng tệp giữa các bộ chứa S3 bằng Boto3, bạn có thể sử dụng phương thức copy_from[]

Chúng ta có thể điều chỉnh ví dụ trước để hỗ trợ Nhóm S3 mới làm đích

import boto3

# boto3.resource also supports region_name
resource = boto3.resource['s3']
9

Các

copy_s3_object[] sẽ sao chép đối tượng S3 trong cùng một Nhóm S3 hoặc giữa các Nhóm S3.

Làm cách nào để tạo Chính sách nhóm S3 bằng Boto3?

Để chỉ định các yêu cầu, điều kiện hoặc hạn chế truy cập Bộ chứa Amazon S3, bạn phải sử dụng Chính sách bộ chứa Amazon S3. Đây là một ví dụ về

Chính sách bộ chứa Amazon S3 để thực thi kết nối HTTPS [TLS] với bộ chứa S3

Hãy sử dụng thư viện Boto3 để thiết lập chính sách này cho bộ chứa S3

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
0

Đây là một đầu ra ví dụ

Làm cách nào để xóa Chính sách nhóm S3 bằng Boto3?

Để xóa Chính sách nhóm S3, bạn có thể sử dụng

Phương pháp
#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

response = client.list_buckets[]

print["Listing Amazon S3 Buckets:"]

for bucket in response['Buckets']:
    print[f"-- {bucket['Name']}"]
2 của máy khách S3.
#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
1

Đây là một kết quả thực thi

Làm cách nào để tạo URL do S3 chỉ định?

Nếu bạn cần chia sẻ tệp từ Bộ chứa Amazon S3 không công khai mà không cấp quyền truy cập API AWS cho người dùng cuối, bạn có thể tạo một URL được ký trước cho Đối tượng bộ chứa

Liên kết được tài trợ
#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
2

Phương thức

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

response = client.list_buckets[]

print["Listing Amazon S3 Buckets:"]

for bucket in response['Buckets']:
    print[f"-- {bucket['Name']}"]
3 của máy khách S3 chấp nhận các tham số sau

  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    response = client.list_buckets[]
    
    print["Listing Amazon S3 Buckets:"]
    
    for bucket in response['Buckets']:
        print[f"-- {bucket['Name']}"]
    4 [chuỗi] — Phương pháp máy khách Boto3 S3 để ký cho
  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    response = client.list_buckets[]
    
    print["Listing Amazon S3 Buckets:"]
    
    for bucket in response['Buckets']:
        print[f"-- {bucket['Name']}"]
    5 [dict] — Các tham số cần được chuyển đến _______64
  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    response = client.list_buckets[]
    
    print["Listing Amazon S3 Buckets:"]
    
    for bucket in response['Buckets']:
        print[f"-- {bucket['Name']}"]
    7 [int] — Số giây mà URL được chỉ định hợp lệ trong. Theo mặc định, URL được chỉ định sẽ hết hạn sau một giờ [3600 giây]
  • #!/usr/bin/env python3
    
    import boto3
    
    AWS_REGION = "us-east-2"
    
    client = boto3.client["s3", region_name=AWS_REGION]
    
    response = client.list_buckets[]
    
    print["Listing Amazon S3 Buckets:"]
    
    for bucket in response['Buckets']:
        print[f"-- {bucket['Name']}"]
    8 [chuỗi] — Phương thức HTTP được sử dụng cho URL được tạo. Theo mặc định, phương thức HTTP là bất kỳ thứ gì được sử dụng trong mô hình của phương thức

Đây là một đầu ra ví dụ

Làm cách nào để bật phiên bản Bộ chứa S3 bằng Boto3?

Phiên bản Bộ chứa S3 cho phép bạn theo dõi các phiên bản của đối tượng Bộ chứa S3 theo thời gian. Ngoài ra, nó bảo vệ chống lại việc vô tình xóa đối tượng. Boto3 sẽ truy xuất phiên bản mới nhất của đối tượng đã được phiên bản theo yêu cầu. Khi một phiên bản mới của một đối tượng được thêm vào, đối tượng đó chiếm dung lượng lưu trữ của các phiên bản được cộng lại với nhau; . e. , tệp 2 MB với 5 phiên bản sẽ chiếm 10 MB dung lượng trong bộ lưu trữ

Để kích hoạt lập phiên bản cho Bộ chứa S3, bạn cần sử dụng phương pháp

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

response = client.list_buckets[]

print["Listing Amazon S3 Buckets:"]

for bucket in response['Buckets']:
    print[f"-- {bucket['Name']}"]
9

#!/usr/bin/env python3

import boto3

AWS_REGION = "us-east-2"

client = boto3.client["s3", region_name=AWS_REGION]

bucket_name = "hands-on-cloud-demo-bucket"
location = {'LocationConstraint': AWS_REGION}

response = client.create_bucket[Bucket=bucket_name, CreateBucketConfiguration=location]

print["Amazon S3 bucket has been created"]
3

Đây là một kết quả thực thi

Bản tóm tắt

Trong bài viết này, chúng tôi đã đề cập đến các ví dụ về cách sử dụng Boto3 để quản lý dịch vụ Amazon S3, bao gồm Bộ chứa S3, Đối tượng, Chính sách bộ chứa, Lập phiên bản và URL được chỉ định

Nếu bạn muốn tìm hiểu thêm về cách sử dụng thư viện Boto3, đặc biệt là khi kết hợp với AWS Lambda, chúng tôi thực sự khuyên bạn nên xem một trong những khóa học được xếp hạng hàng đầu của Udemy về chủ đề này – Tự động hóa AWS với Boto3 của Hàm Python và Lambda

Tôi có thể đọc tệp S3 mà không cần tải xuống không?

Đọc các đối tượng mà không cần tải chúng xuống . using the S3 resource method put[], as demonstrated in the example below [Gist].

Lambda có thể đọc từ S3 không?

Hàm Lambda truy xuất tên bộ chứa S3 nguồn và tên khóa của đối tượng đã tải lên từ thông số sự kiện mà nó nhận được . Hàm sử dụng API getObject của Amazon S3 để truy xuất loại nội dung của đối tượng.

S3 trong Python là gì?

Một trong những thành phần cốt lõi của nó là S3, dịch vụ lưu trữ đối tượng do AWS cung cấp . Với tính khả dụng và độ bền ấn tượng, nó đã trở thành cách tiêu chuẩn để lưu trữ video, hình ảnh và dữ liệu. Bạn có thể kết hợp S3 với các dịch vụ khác để xây dựng các ứng dụng có khả năng mở rộng vô hạn. Boto3 là ​​tên của Python SDK cho AWS.

Chủ Đề