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

作为流程的一部分,我的网站从大熊猫数据框中创建一个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()))
点赞