Python 直接从Heroku的flask应用程序将文件写入S3存储桶

Python 直接从Heroku的flask应用程序将文件写入S3存储桶,python,amazon-web-services,amazon-s3,Python,Amazon Web Services,Amazon S3,我正在做一个flask项目,在这个项目中,我从python字典创建了一个JSON文件。我想将JSON文件直接推送到s3存储桶中。 我怎样才能做到这一点 样本数据: data = { 'uid': userId, 'descriptions': description, 'inputs': inputs, 'outputs': outputs, 'ex_inputs': example_input, 'ex_outputs': example

我正在做一个flask项目,在这个项目中,我从python字典创建了一个JSON文件。我想将JSON文件直接推送到s3存储桶中。 我怎样才能做到这一点

样本数据:

    data = {
    'uid': userId,
    'descriptions': description,
    'inputs': inputs,
    'outputs': outputs,
    'ex_inputs': example_input,
    'ex_outputs': example_output,
    'miscs': misc,
    'constraints': constraints
}

json_data = json.dumps(data, indent=4, ensure_ascii=False)
您需要使用该库从python应用程序与S3对话

此链接可能是您的良好开端-


put\u对象-

它使用S3 put\u对象方法。 我的更新代码如下:

key = 'description_' + str(fid) + '.json'
response = s3.put_object(Bucket='d2c-api2-bucket',
                         Body=json_data,
                         Key=key
                         )

如何直接在S3上创建此文件?文档中提到了文件上传,但我需要直接在s3 bucket中创建一个特定名称的文件。更新了答案以包含一个s3.Object.put的示例,我可以在其中提到文件名吗?是钥匙名吗?是的。关于S3对象键的更多信息-在使用boto3将对象放入S3之前,您需要从AWS控制台创建API键,并以某种方式使它们对boto3可用。你应该阅读这篇文章来了解如何做到这一点-
key = 'description_' + str(fid) + '.json'
response = s3.put_object(Bucket='d2c-api2-bucket',
                         Body=json_data,
                         Key=key
                         )