上传大文件到AWS S3存储和Django在Heroku上没有30多岁的请求超时

Bas*_*deh 15 python django heroku amazon-s3 large-files

我有一个django应用程序,允许用户上传视频.它托管在Heroku上,以及存储在S3 Bucket上的上传文件.在从Django app获得预先签名的请求后,我使用JavaScript直接将文件上传到S3.这是由于Heroku 30s请求超时.无论如何,我可以通过Django后端上传大文件而不使用JavaScript并破坏用户体验吗?

Arp*_*nki 6

您应该考虑以下几点来解决您的问题.

  • 为什么你的文件不应该到你的django-server然后转到s3:将文件发送到django服务器然后将它们发送到s3只是浪费计算能力和带宽.接下来就是为什么当你可以直接将文件发送到s3存储器时将文件发送到django服务器.
  • 如何在不影响UX的情况下将文件上传到s3:将文件发送到django服务器肯定不是一个选项,因此您必须在前端处理此问题.但前端有自己的限制,如有限的内存.它将无法处理非常大的文件,因为一切都被加载到RAM中,如果它是一个非常大的文件,浏览器最终会耗尽内存.我建议你使用像dropzone.js这样的东西.它不会解决内存问题,但它肯定可以为用户提供良好的用户体验,如显示进度条,文件数等.