[英]How would I go about getting info from a list of link then dump them into a JSON object?
[英]How would I go about downloading a file from a submitted link then reuploading to my server for streaming?
我正在一个项目中,用户可以通过表单提交指向另一个站点上托管的声音文件的链接。 我想将该文件下载到我的服务器上,并使其可用于流式传输。 我可能必须将其上传到Amazon S3。 我在Django中进行此操作,但是我是Python新手。 谁能指出我正确的方向呢?
这是我的处理方式:
创建一个类似SoundUpload
的模型,如下SoundUpload
:
class SoundUpload(models.Model): STATUS_CHOICES = ( (0, 'Unprocessed'), (1, 'Ready'), (2, 'Bad File'), ) uploaded_by = models.ForeignKey(User) original_url = models.URLField(verify_true=False) download_url = models.URLField(null=True, blank=True) status = models.IntegerField(choices=STATUS_CHOICES, default=0)
接下来创建带有ModelForm
的视图,并将信息保存到数据库。
在django-celery Task的SoundUpload
模型上挂钩一个保存后的信号 。 这将确保UI在处理所有数据时响应。
def process_new_sound_upload(sender, **kwargs): # Bury to prevent circular dependency issues. from your_project.tasks import ProcessSoundUploadTask if kwargs.get('created', False): instance = kwargs.get('instance') ProcessSoundUploadTask.delay(instance.id) post_save.connect(process_new_sound_upload, sender=SoundUpload)
在ProcessSoundUploadTask
任务中,您需要:
这种方法的关键是使用django-celery
。 通过post_save信号启动任务后,UI可以返回,从而创造出非常“诱人”的体验。 该任务被放入一个AMQP消息队列中,该队列可以由多个工作程序(专用的EC2实例等)处理,因此您可以进行扩展而不会遇到太多麻烦。 这似乎有点过大,但实际上并没有看起来那么多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.