4

我有 django 1.11 和最新的 django-storages,设置了 S3 后端。

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

我假设我需要创建一个文件,并为它提供从没有域的 url 派生的路径,但我找不到确切的方法。

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

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

更新

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

4

1 回答 1

6

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

于 2018-06-11T19:34:47.497 回答