上传文件不可能在Heroku上用Python?

lrl1mhuk  于 2023-03-03  发布在  Python
关注(0)|答案(2)|浏览(137)

Heroku不允许你上传文件,他们宁愿你上传到云存储服务,如亚马逊s3。但是,为了使用Python上传文件到s3,文件需要保存为你需要的字符串路径...?

dgtucam1

dgtucam11#

Heroku在保存文件时的问题是他们有ephemeral filesystem,这意味着您存储在Heroku上的文件不属于初始git存储库,将在dyno重新启动后删除,我认为每24小时发生一次。
但他们仍然允许您存储文件约24小时(或直到下一次dyno重新启动),考虑到这一点,您可以在本地存储在一些/tmp目录中以供快速参考,或者您可以使用boto3库将文件上传到AWS S3存储桶。

zqry0prt

zqry0prt2#

当你使用FileField或ImageField时,只有相对文件路径被保存为数据库中的字符串,Django依赖于你在MEDIA_ROOT中定义的内容(例如,你的S3存储桶的url),并在相对url后面加上文件名(例如,uploads/file. txt)来构建文件的完整路径。

相关问题