通过 API 上传文件时 Heroku 前端超时
Posted
技术标签:
【中文标题】通过 API 上传文件时 Heroku 前端超时【英文标题】:Heroku frontend timeouts when uploading file through API 【发布时间】:2016-05-11 17:34:59 【问题描述】:我有一个托管在 Heroku 上的 RESTful Rails API。我在 Heroku 上也有一个使用我的 API 的 Rails 前端。我在上传文件时遇到前端超时问题。我将上传请求发送到我的前端(使用jquery-fileupload-rails
完成),然后再向我的 API 发送一个请求。然而,即使是 1MB 的文件,前端似乎也会超时并放弃等待 API 的回复。文件上传工作正常。如果我刷新页面,图像就在那里。但是,我更愿意用图像动态更新我的页面。较小的文件似乎可以工作,可能是因为前端很快就会收到 API 的回复。
我知道 Heroku 对请求有 500 毫秒的时间限制,而且似乎没有办法改变它,所以我希望我能就这个问题得到一些建议。这只是不适用于 Heroku 吗?我应该以不同的方式将 ajax 文件上传到 API 吗?或者如果页面超时,我是否只需要刷新页面(也不知道我会怎么做)?提前致谢!!
【问题讨论】:
【参考方案1】:您应该将文件上传到不同的服务,例如 Amazon 的 S3。直接上传到 Heroku 绝不是一个好主意。
【讨论】:
我使用 S3 进行存储。我在 Heroku 上的 API 使用 Paperclip 上传到它。我知道有一个直接转到 S3 的选项,但我需要 Imagemagick 先对它们进行一些处理,所以我不认为它是一个选项。 它变得更复杂了,但是你上传到S3,然后你通过调用reprocess来异步处理!在图像对象上。以上是关于通过 API 上传文件时 Heroku 前端超时的主要内容,如果未能解决你的问题,请参考以下文章
如何将文件直接从 Django admin 上传到 Amazon S3?缓解 Heroku 应用程序错误(超时)
从 django 静态文件提供服务并上传到 heroku 时无法找到反应静态文件