python - 如何将输出文件从 Django 保存到 Amazon S3

标签 python django heroku amazon-s3

作为该过程的一部分,我的网站从 pandas 数据框创建了一个 csv 文件 -

df.to_csv()

由于应用部署在Heroku上,这里没有持久化文件存储,我想把这个保存到Amazon S3。我为上传的文件和静态文件设置了这个,但无法让它工作。非常感谢任何帮助。

最佳答案

也许你可以使用django-storages将您的文件保存到 Amazon S3。像这样将您的 AWS 凭据添加到您的配置中:

heroku config:add AWS_ACCESS_KEY_ID='your_key_here'
heroku config:add AWS_SECRET_ACCESS_KEY='your_secret_here'
heroku config:add AWS_STORAGE_BUCKET_NAME='your_bucket_name_here'

并像这样在您的 settings.py 中检索它们:

AWS_ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')

更新:您可以尝试 StringIO 来做这样的事情:

from django.core.files.base import ContentFile
from StringIO import StringIO

output = StringIO()
df.to_csv(output)
mymodel.myfield.save('django_test.csv', ContentFile(output.getvalue()))

关于python - 如何将输出文件从 Django 保存到 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282884/

相关文章:

django - 类型错误 : login() takes 1 positional argument but 2 were given

Django - 搜索匹配所有对象 - 即使它们实际上不匹配

postgresql - Postgres。角色 "root"不存在。尝试 pg :pull database from Heroku 时

python - 使用 LDA 和 Gensim 推断新的、未见过的文档的主题分布

python - boto3 和 AWS Athena 权限

python - django-rest-framework 接受 JSON 数据?

spring-boot - 使用Gradle(Kotlin)应用程序部署Spring Boot-找不到jar

python - matplotlib 中的(隐式)方程式绘图系统

python - 使用json获取所有 "viewer"和 "timestamp"

java - 如何在 Heroku 中将 JDK 1.8 更改为 JDK 11?