gpt4 book ai didi

python - dyno falls sleep django heroku postgresql 后找不到图像

转载 作者:行者123 更新时间:2023-11-29 12:20:24 27 4
gpt4 key购买 nike

我有一个小型 Django 应用程序,其管理站点部署在 Heroku 上。每次测功机进入休眠状态时,我之前在管理站点中预加载的所有媒体文件(图像)都会消失。我不确定图像是否正确存储在 postgresql 数据库中,或者它们是否未存储在数据库中,仅存储在媒体位置。其余的都在工作,只是在 dyno 休眠后找不到的图像。我能做些什么?这是我的代码:

模型.py

from django.db import models

class Service(models.Model):
title = models.CharField(max_length=40)
description = models.TextField()
enable = models.BooleanField(default=False)
image = models.ImageField()

def __str__(self):
return self.title

def __unicode__(self):
return self.title

管理员.py

from django.contrib import admin
from . import models

class ServiceAdmin(admin.ModelAdmin):
list_display = ("title","enable")

def image_img(self):
if self.image:
return u'<img src="%s" />' % self.image.url
else:
return '(No image found)'
image_img.short_description = 'Thumb'
image_img.allow_tags = True

admin.site.register(models.Service, ServiceAdmin)

设置.py

import os
import dj_database_url

PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))

POSTGRES_URL = "HEROKU_POSTGRESQL_<NAME>_URL"
DATABASES = {'default': dj_database_url.config(default=os.environ[POSTGRES_URL])}

MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'

如果您需要其他东西,请现在告诉我。谢谢

最佳答案

当您在管理站点中创建图像时,您会将它们保存到媒体目录中的 Heroku dyno 中。您遇到的行为是预期的,因为 Heroku 使用 ephemeral filesytem . Dynos 每 24 小时(可能在它们休眠时)循环一次,因此您直接在 Heroku 上创建或修改的任何文件都将被丢弃。您需要将上传的图像存储在像 Amazon S3 这样具有持久性的地方。您还可以将图像添加到您的存储库、提交并将它们推送到 heroku,只要您的 slug 大小保持在 300 MB 以下

关于python - dyno falls sleep django heroku postgresql 后找不到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28969282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com