Python 直接从Heroku的flask应用程序将文件写入S3存储桶
我正在做一个flask项目,在这个项目中,我从python字典创建了一个JSON文件。我想将JSON文件直接推送到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
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
)