从 API 保存到 S3 存储桶

saving from api to s3 bucket

提问人:WindSwept 提问时间:7/12/2021 最后编辑:John RotensteinWindSwept 更新时间:12/2/2022 访问量:1303

问:

我正在尝试获取以下 python 代码以使用 bot03 和 python 将 csv 从 api 保存到 amazon s3 存储桶,但我看不出我哪里出了问题。当我执行代码时,我没有收到任何错误,但该文件从未出现在 s3 存储桶中。

import boto3
from botocore.exceptions import ClientError

file_name = "test.csv"
bucket = "mybucket"

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',})

    s3 = bot03.client("s3")
    with open("test.csv","rb") as file2:
     s3.upload_fileobj(x.content, bucket, "test.cvc")

任何提示/建议将不胜感激。我是python / aws新手,所以如果是一个基本问题,我深表歉意

python 亚马逊网络服务 API 亚马逊 S3

评论


答:

1赞 WindSwept 7/13/2021 #1

我使用这段代码来实现我需要的东西

file_name = "test.csv"
bucket = "my_bucket"

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',})



    s3_resource = boto3.resource('s3')
    s3_resource.Object(bucket, 'snowflake/csv/df1.csv').put(Body=x.content)


if __name__ == "__main__":
    main()

评论

0赞 Sanchez333 6/24/2022
感谢您坚持这样做并给出答案。你救了我,正好赶上了我的演讲!
0赞 Sanchez333 6/24/2022
万一有其他人来看,这个问题的答案也有一些有用的代码:stackoverflow.com/questions/40336918/......
-1赞 Henry Wang 12/2/2022 #2

根据 OP(原始帖子), 你试过了吗

(第 11 行) s3 = boto3.client(“s3”) -- OP: bot03.client(“s3”)

评论

0赞 Community 12/5/2022
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞 naab 12/7/2022
这并不能提供问题的答案。一旦你有足够的声誉,你就可以对任何帖子发表评论;相反,提供不需要提问者澄清的答案。- 从评论