将大文件Django存储上传到AWS S3

时间:2020-02-20 08:51:14

标签: django python-3.x amazon-s3 jquery-file-upload

我是新来的Django,我有一个项目应该上传大文件(大小从5G +起)。

我正在使用:

  • django-storages
  • Amazon S3
  • Django 3.0.2
  • Python 3.7.6
  • JQuery 3.1

在文档中,它说,当文件大于2.5MB时,它将转到TemporaryFileUploadHander,这意味着它将首先转到/ tmp目录,并且在上传完成后,它将文件移至Media Root(在我的就是Amazon S3)

现在,要求是将文件上传流传输到Amazon S3。 例如: 20Gb文件应以流方式(一点一点地)上传到Amazon S3。 我如何实现此要求以将文件直接直接上传到Amazon S3,而无需先将文件上传到/ tmp目录。

请给我一点光。

1 个答案:

答案 0 :(得分:0)

无法将文件从Web客户端流传输到Django,再到S3。最好的解决方案是将文件从客户端JS拆分为多个块,然后将它们一个接一个地上传。示例代码为here

尽管如此,该解决方案仍会将较小的文件保存到磁盘。