如何使用boto3访问AWS S3数据



我对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 DataFrames中(一旦我知道如何访问S3数据,我就知道该怎么做(。

请理解,我对boto3S3都很陌生,所以我甚至不知道从哪里开始。

您将有两个选项,这两个选项都已提到:

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

请参阅下载文件

  1. 使用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()

请参阅获取对象(_O(

任何一种方法都可以,你可以选择哪种更适合你的场景。

试试这个:

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

相关内容

  • 没有找到相关文章

最新更新