我有一个Django应用程序,它生成.csv文件(使用csv.writer),然后将其上传到Amazon S3。
我现在如何在本地执行此操作是制作csv文件,将其存储在本地,然后将该文件保存到S3。然而,对于heroku和它的“filesytem”,我认为跳过“本地存储”步骤可能会更好。
有没有办法从python中直接输出csv文件到S3?
答案 0 :(得分:2)
查看amazon s3后端的django-storage。然后,您可以将csv文件直接发送到s3,而无需在本地保存。
http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html
来自文档:
>>> from django.core.files.storage import default_storage
>>> from django.core.files.base import ContentFile
>>> from django.core.cache import cache
>>> from models import MyStorage
>>> default_storage.exists('storage_test')
False
>>> file = default_storage.open('storage_test', 'w')
>>> file.write('storage contents')
>>> file.close()
>>> default_storage.exists('storage_test')
True
>>> file = default_storage.open('storage_test', 'r')
>>> file.read()
'storage contents'
>>> file.close()
>>> default_storage.delete('storage_test')
>>> default_storage.exists('storage_test')
False