如何下载使用Django存储上传的Django媒体文件?

时间:2017-03-10 08:25:55

标签: django-storage

我已经使用Django-storage成功将word文档存储到s3。

class Document(TitleSlugDescriptionModel, TimeStampedModel):
    document = models.FileField(upload_to=user_directory_path)

现在在celery任务中,我需要再次下载此文件以便在worker中进行进一步处理。

我是否需要从Url读取文件,然后显式创建本地副本,或者有没有办法使用Django-storage创建本地副本?

非常感谢任何指导

1 个答案:

答案 0 :(得分:0)

您可以使用读取方法直接在Django中读取文件,如下所示: document.read() 这将输出二进制文件,您可以使用

保存到文件
f=open(filename, 'wb')
f.write(document.read())
f.close

您也可以在S3上生成指向该文件的URL。关于这两个文档的更多信息:https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html