将 csv 文件直接保存到 S3 存储桶

Save csv file directly to S3 bucket

提问人:WindSwept 提问时间:7/9/2021 最后编辑:John RotensteinWindSwept 更新时间:7/10/2021 访问量:1982

问:

我有一些 python 代码,可以将来自 api 的响应保存到我计算机的文件系统。如何将 api 响应 (csv) 直接保存到 amazon s3 存储桶,而不必将其保存到我的计算机文件系统中。

我查看了使用 bot03 的示例,但它们仅显示了从本地文件系统上传的示例。我想做的是将 csv 文件直接保存到 s3 存储桶。任何建议将不胜感激 - 我是 python 新手。

这是我用来保存到本地文件系统的代码:

import requests
import csv

def main():
    url = "https://api0.solar.sheffield.ac.uk/pvlive/v3/pes/10?start=2021-01-01T00:00:00&end=2021-07-06T00:00:00&data_format=csv"
    x = requests.get(url,headers={'Content-Type': 'application/json', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate',})
#save to csv
    with open('C:\\Users\myDirectory\myFile.csv', 'wb') as file:
            file.write(x.content)

非常感谢

蟒蛇 网络服务 亚马逊S3

评论

0赞 WindSwept 7/10/2021
好的,到目前为止我有这个:s3 = bot03.client(“s3”) with open(“test.csv”,“rb”) as file2: s3.upload_fileobj(x.conent, “BUCKETNAME”, “FILENAMEFORS3.CSV“) 如何传递凭证以连接到我的存储桶?
0赞 John Rotenstein 7/10/2021
您可以使用 AWS 命令行界面 (CLI) 命令将凭证存储在计算机上。它会将它们存储在 中,boto3 会自动检测到。aws configure~/.aws/credentials

答:

0赞 xhg 7/10/2021 #1

boto3 支持从 或 上传文件,这不需要您先将其保存到文件:put_objectbytesfile

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.put_object

body=b'bytes'|文件,