我无法上传多个大文件



我正在使用Django、AWS S3开发一个应用程序,并托管在Heroku上。

有一次,用户必须上传多个大文件,每次总计约150MB。我尝试过各种方法。

第一次尝试:直接调用Django表单的save方法:结果:请求耗时超过30秒,并返回超时。

第二次尝试:将文件临时保存到Heroku目录,并从Celery任务中读取。结果:无法保存,因为它抛出FileNotFoundError:[Erno 2]生产中没有这样的文件或目录。

第三次尝试:将上传的文件(内存中的文件(传递给一个芹菜任务,但字节无法序列化并传递给该任务,无论是使用json还是pickle。

有人能帮我吗?提前感谢。

另一种方法可以是

  1. 公开一个API来为前端生成预签名的URL(步骤在这里(
  2. 使用该URL以异步方式从前端上传文件。这将在后端卸载您的计算
  3. 上传成功后,您将获得文件位置的URL。现在将S3 URL和其他字段数据保存到Django模型中

使用此方法可以上载超过150MB的文件大小。您的系统将具有可扩展性。

相关内容

  • 没有找到相关文章

最新更新