Django存储S3 - 存储现有文件

时间:2018-05-30 16:38:21

标签: django boto3 wagtail django-storage

我有django 1.11和最新的django-storage,使用S3后端进行设置。

我正在尝试使用AWS图像链接作为起点以编程方式实例化ImageFile。我无法弄清楚如何查看源/文档。

我假设我需要创建一个文件,并为其提供从没有域名的网址派生的路径,但我找不到具体的方法。

这样做的最终目的是以编程方式创建wagtail Image对象,指向S3图像(因此将新的ImageFile传递给图像的Imagefield)。我拥有存储在其中的S3存储桶。

上传图片工作正常,因此系统设置正确。

更新

为了澄清,我需要做与正常过程相反的事情。通常会向系统提供物理图像,然后创建ImageFile,然后将文件上载到S3,并将URL分配给File.url。我有File.url,需要一个ImageFile对象。

1 个答案:

答案 0 :(得分:1)

事实证明,在几个期望文件的模型中,当使用DjangoStorage时,我所要做的就是不在文件字段上传递File,而是传递AWS S3对象密钥(所以不是URL,只是对象键)。 调用model.save()时,会向S3发出boto调用,以验证所提供密钥的对象是否存在,并保存该项目。