簡體   English   中英

如何使用 boto3 訪問 AWS S3 數據

[英]How to access AWS S3 data using boto3

我對 S3 和 boto3 都很陌生。 我正在嘗試以下列格式讀取一些數據:

https://blahblah.s3.amazonaws.com/data1.csv
https://blahblah.s3.amazonaws.com/data2.csv
https://blahblah.s3.amazonaws.com/data3.csv

我正在導入boto3 ,看來我需要做類似的事情:

import boto3
s3 = boto3.client('s3')

但是,如果我想在內存中單獨讀取所有文件(我不應該在本地下載這些數據),那么在創建這個客戶端之后我應該怎么做? 理想情況下,我想將每個 CSV 數據文件讀入單獨的 Pandas 數據幀(一旦我知道如何訪問 S3 數據,我就知道該怎么做)。

請理解我對boto3S3都很陌生,所以我什至不知道從哪里開始。

試試這個:

import boto3
s3 = boto3.resource('s3')
obj = s3.Object(<<bucketname>>, <<itemname>>)
body = obj.get()['Body'].read()

您將有 2 個選項,您已經提到的兩個選項:

  1. 使用download_file在本地下載文件
s3.download_file(
    "<bucket-name>", 
    "<key-of-file>", 
    "<local-path-where-file-will-be-downloaded>"
)

下載文件

  1. 使用 get_object 將文件內容加載到get_object
response = s3.get_object(Bucket="<bucket-name>", Key="<key-of-file>")
contentBody = response.get("Body")
# You need to read the content as it is a Stream
content = contentBody.read()

get_object

兩種方法都可以,您可以選擇更適合您的場景的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM