0

静态图像是否会在不久后过期并自动被删除?

我的情况是我通过模型的 ImageField 从我的 PostgreSQL 数据库中检索图像,方法是将其设置upload_tostatic/images. 然后,我通过mysitesurl.com/static/images/model.url这最初完美地访问图像。但是,几个小时后,我注意到图像不再可访问。当我尝试通过相同的 url 访问它们时,它们不再存在。我不做任何手动图像删除,所以我执行的操作不应该干扰这个。

这是 Heroku 做的我不明白的事情吗?

另外,我注意到一个奇怪的现象是图像仍然可以通过 url 访问,但它实际上并没有保存到static/images. 至少,当我运行时heroku run ls static/images,它不存在。这是在heroku中检查目录内容的正确方法吗?

编辑:我的配置

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    'static',
    'static/uploaded_stuff/',
)
4

1 回答 1

4

您可以heroku run bash --app YOUR_APP从存储库目录运行。这会为您的 Heroku 实例创建一个 shell,允许您浏览文件。

您可以通过这种方式检查静态图像。

不过,我建议使用 S3 来提供静态图像。您可以查看有关如何集成它的教程: http ://blog.doismellburning.co.uk/2012/07/14/using-amazon-s3-to-host-your-django-static-files/

了解更多详细信息后,您尝试允许用户上传,而 Heroku 的文件系统是只读的。对于静态/上传的文件,您需要使用 S3 或类似的托管解决方案。 https://devcenter.heroku.com/articles/read-only-filesystem

于 2013-01-10T18:35:41.303 回答