Hướng dẫn python get file from s3 - python lấy tệp từ s3

Từ một ví dụ trong tài liệu chính thức, định dạng chính xác là:

import boto3

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')

Bạn cũng có thể sử dụng một đối tượng giống như tệp được mở ở chế độ nhị phân.

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)

Mã trong câu hỏi sử dụng s3 = boto3.client ('s3'), không cung cấp bất kỳ thông tin đăng nhập nào.

Định dạng để xác thực một máy khách được hiển thị ở đây:

import boto3
client = boto3.client(
    's3',
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    aws_session_token=SESSION_TOKEN,
)

# Or via the Session
session = boto3.Session(
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    aws_session_token=SESSION_TOKEN,
)

Và cuối cùng, bạn cũng có thể sử dụng lại phiên được xác thực mà bạn đã tạo để lấy xô, sau đó tải xuống sau đó tệp từ thùng.

from boto3.session import Session
import boto3

ACCESS_KEY = 'ABC'
SECRET_KEY = 'XYZ'

session = Session(aws_access_key_id=ACCESS_KEY,
              aws_secret_access_key=SECRET_KEY)

# session is authenticated and can access the resource in question 
session.resource('s3')
    .Bucket('bucket_name')
    .download_file('k.png','/Users/username/Desktop/k.png')

Các phương thức được cung cấp bởi AWS SDK cho Python để tải xuống các tệp tương tự như các phương thức được cung cấp để tải lên các tệp.

Phương thức download_file chấp nhận tên của xô và đối tượng để tải xuống và tên tệp để lưu tệp vào.

import boto3

s3 = boto3.client('s3')
s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')

Phương thức download_fileobj chấp nhận một đối tượng giống như tệp có thể ghi. Đối tượng tệp phải được mở ở chế độ nhị phân, không phải chế độ văn bản.

s3 = boto3.client('s3')
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)

Giống như anh em họ tải lên của họ, các phương thức tải xuống được cung cấp bởi các lớp S3

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
0,
s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
1 và
s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
2 và mỗi lớp cung cấp chức năng giống hệt nhau. Sử dụng bất kỳ lớp nào là thuận tiện.

Cũng giống như các phương thức tải lên, các phương thức tải xuống hỗ trợ các tham số

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
3 và
s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
4 tùy chọn.

Danh sách các cài đặt

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
3 hợp lệ cho các phương thức tải xuống được chỉ định trong thuộc tính
s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
6 của đối tượng
s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
7 tại
s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
8.

Tham số

s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
4 của phương thức tải xuống được sử dụng cho cùng mục đích với phương thức tải lên. Các phương thức tải lên và tải xuống đều có thể gọi cùng một lớp
s3 = boto3.client('s3', aws_access_key_id=... , aws_secret_access_key=...)
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
    f.seek(0)
4.

Ví dụ này cho thấy cách tải xuống một tệp từ xô S3, sử dụng s3.bucket.doad_file ().S3.Bucket.download_file().

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

Để thiết lập và chạy ví dụ này, trước tiên bạn phải:

  • Định cấu hình thông tin đăng nhập AWS của bạn, như được mô tả trong QuickStart.
  • Tạo một thùng S3 và tải một tệp lên thùng.
  • Thay thế các giá trị khóa và các giá trị khóa trong đoạn mã bằng tên của nhóm của bạn và khóa cho tệp đã tải lên.BUCKET_NAME and KEY values in the code snippet with the name of your bucket and the key for the uploaded file.

Tải xuống một tập tin

Ví dụ dưới đây cố gắng tải xuống một đối tượng S3 vào một tệp. Nếu dịch vụ trả về lỗi 404, nó sẽ in một thông báo lỗi cho biết rằng đối tượng không tồn tại.

import boto3
import botocore

BUCKET_NAME = 'my-bucket' # replace with your bucket name
KEY = 'my_image_in_s3.jpg' # replace with your object key

s3 = boto3.resource('s3')

try:
    s3.Bucket(BUCKET_NAME).download_file(KEY, 'my_local_image.jpg')
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise

Làm cách nào để lấy dữ liệu từ S3 Buck Python?

Cách tải lên và tải xuống các tệp từ AWS S3 bằng Python (2022)..
Bước 1: Thiết lập tài khoản. ....
Bước 2: Tạo người dùng. ....
Bước 3: Tạo một thùng. ....
Bước 4: Tạo chính sách và thêm nó vào người dùng của bạn. ....
Bước 5: Tải xuống AWS CLI và định cấu hình người dùng của bạn. ....
Bước 6: Tải lên các tập tin của bạn. ....
Bước 7: Kiểm tra xem xác thực có hoạt động không ..

Làm cách nào để nhận các tệp từ AWS S3?

Trong bảng điều khiển Amazon S3, chọn Xô S3 của bạn, chọn tệp bạn muốn mở hoặc tải xuống, chọn hành động, sau đó chọn mở hoặc tải xuống. Nếu bạn đang tải xuống một đối tượng, chỉ định nơi bạn muốn lưu nó. Quy trình lưu đối tượng phụ thuộc vào trình duyệt và hệ điều hành mà bạn đang sử dụng.. If you are downloading an object, specify where you want to save it. The procedure for saving the object depends on the browser and operating system that you are using.

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

Đọc các đối tượng mà không tải chúng xuống tương tự, nếu bạn muốn tải lên và đọc các đoạn dữ liệu văn bản nhỏ như trích dẫn, tweet hoặc bài báo, bạn có thể làm điều đó bằng cách sử dụng phương thức tài nguyên S3 ()).you can do that using the S3 resource method put(), as demonstrated in the example below (Gist).

Làm cách nào để tải xuống từ S3 đến địa phương bằng boto3?

Tải xuống một tệp duy nhất từ S3 bằng BOTO3..
Phiên - Để tạo một phiên với tài khoản AWS của bạn.Giải thích trong phần trước.Cái này là cái gì?Báo cáo quảng cáo ..
S3 - Tài nguyên được tạo ra trong phiên ..
S3.Gầu múc().download_file () - Phương thức API để tải xuống tệp từ các thùng S3 của bạn.Bucket_name - Đặt tên cho nhóm S3 của bạn ..