[英]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 數據,我就知道該怎么做)。
請理解我對boto3
和S3
都很陌生,所以我什至不知道從哪里開始。
試試這個:
import boto3
s3 = boto3.resource('s3')
obj = s3.Object(<<bucketname>>, <<itemname>>)
body = obj.get()['Body'].read()
您將有 2 個選項,您已經提到的兩個選項:
download_file
在本地下載文件s3.download_file(
"<bucket-name>",
"<key-of-file>",
"<local-path-where-file-will-be-downloaded>"
)
見下載文件
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()
兩種方法都可以,您可以選擇更適合您的場景的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.