【发布时间】:2022-01-18 17:07:48
【问题描述】:
我创建了一个帖子 api,它将为博客上传图片和视频。我可以处理多个图像,这不是问题。但我也必须从前端发送视频。我已将 Filefield 用于视频。我不是 apis 专家,但我认为,由于我编写的代码是同步的,所以我编写的所有内容都会同时完成。现在的问题是,如果用户想要上传一个非常大的视频,例如 200-500 mb,那么 post api 调用响应将会很长。有没有办法先保存博文,返回响应,然后开始上传直播服务器数据库中的视频。
我的模型:
class Blogposts(models.Model):
blog_title = models.CharField(max_length=100blank=True)
video = models.FileField(upload_to="media",
null= True)
我尝试使用 django 信号,但是 django 信号也是同步的。我上面所说的一切也可能是错误的,我不确定。但是如何解决这个问题?还是我应该使用 django celery??
【问题讨论】:
-
单独请求视频?
-
我不知道什么是最好的方法...我的想法是先创建一个没有视频的博客文章,然后开始异步上传视频。
-
是的。只需创建两个单独的请求。创建帖子,取回它的ID。然后上传视频,使用 id 将其附加到正确的帖子中。
-
hmn,...在前端本身的表单上上传视频所花费的时间呢??
-
理想情况下,您不会使用普通形式,而是使用某种 JS 在后台执行
fetch。
标签: django api django-rest-framework django-celery django-signals