如何加快Django FileField的上传速度?

时间:2012-02-26 04:25:47

标签: django

我有一个使用django-storages的FileField' S3BotoBackend将音频文件上传到Amazon S3。音频文件的大小最大可达10MB,用户可以以相同的形式上传多个文件。上传时间可能很长并且阻塞。为了加快处理速度,我考虑编写一个继承S3BotoBackend的自定义存储后端,并在上传到S3之前将作业提交到beanstalk队列。

有没有更简单的替代方案来加速用户体验?

1 个答案:

答案 0 :(得分:2)

如果您想加快速度,您需要让您的Web服务器更专注于处理上传。您可以查看Nginx的Nginx upload module,但您可以使用任何Web服务器完成相同的操作。

对于这种方法,您将配置一个视图,该视图将在用户成功上载文件后接收请求,这将是将文件排队上传到S3的合适时机。

这将允许您异步接收来自用户的多个上传,并异步将文件发送到S3,这应该涵盖您可以采取的一切措施来改善文件上传体验。