如何将文件直接从 Django admin 上传到 Amazon S3?缓解 Heroku 应用程序错误(超时)

Posted

技术标签:

【中文标题】如何将文件直接从 Django admin 上传到 Amazon S3?缓解 Heroku 应用程序错误(超时)【英文标题】:How to upload files directly from Django admin to Amazon S3? Mitigating Heroku Application Error (timeout) 【发布时间】:2013-07-02 12:52:33 【问题描述】:

我在 Heroku 上有一个应用程序(免费计划),并且在从 Django 管理员上传的媒体文件时经常收到 应用程序错误。我使用 S3 提供静态和媒体服务。 通过 django admin 直接将文件上传到 S3 的最佳方法是什么?或者也许有其他方法可以缓解这个问题(不添加测功机)?

【问题讨论】:

【参考方案1】:

尝试以下方法之一:

    s3 direct.: 使用 s3 direct,文件将直接上传到 s3。 增加服务器超时 您可以增加服务器超时 --- 猜测您正在使用 Gunicorn 。 请注意,这可能会产生影响,不幸的是我不完全知道repercussions 是什么类型的

【讨论】:

【参考方案2】:

您可以为此使用django-storages

【讨论】:

这有什么帮助?如果通过管理员上传文件的时间超过 30 秒,则会出现此问题。然后我们遇到了heroku超时。【参考方案3】:

@acquayefrank 的建议对我有用。我有一个 Django 项目,但在通过 Django Admin 上传大约 120 MB 以上的文件时遇到了问题。

我将我的 Procfile 更改为这样说(将 yourname 替换为 .wsgi 的虚线路径):

web: gunicorn --timeout 120 yourname.wsgi --log-file -

我不能肯定这会解决每个人的相同问题,但可能值得一试。

【讨论】:

【参考方案4】:

This 文章概述了如何在 javascript 的帮助下直接上传到 S3。然后,您可能会使用custom Javascript in the Django admin 来实现相同的结果。希望对您有所帮助。

【讨论】:

以上是关于如何将文件直接从 Django admin 上传到 Amazon S3?缓解 Heroku 应用程序错误(超时)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 django admin 中的单个“选择文件”选择器上传多个图像

将 BinaryField 的文件上传小部件添加到 Django Admin

当我从数据库/模型中删除对象时,如何让 Django Admin 删除文件?

excel中2000多行只添加了一行,同时上传到django admin

如何将文件从 Axios 上传到 Django?

Django Admin - 创建“临时”条目