首页 > 解决方案 > S3 的 TextFields 中的相对媒体路径

问题描述

我有大量具有 TextFields 的模型,其中(有时)包含指向用户在编辑这些字段时上传的图像的链接。

所以一个字段可能包含这样的东西: -

This is my image

<img src="/media/uploads/myimage.jpg">

目前这工作正常,因为我的所有媒体都是由 nginx 从我的 Web 服务器上的目录提供的。

但是,我想将所有用户上传的媒体移动到 Amazon S3,而不是从我的服务器提供媒体。

我已经为在 ImageFields 中有图像的模型做好了一切工作,因为它们只是使用 django-storages API 计算出图像的路径。但是上面存储在 TextFields 中的图像将不再起作用,因为它们是相对路径,而不是 S3 路径。

有没有办法使这项工作无需编辑所有 TextFields 的所有内容以将 img 路径更改为完整的 S3 路径?这不仅看起来是一个非常费力的过程(即使我可以通过编程方式完成),而且如果我随后想要更改为另一个存储服务怎么办?我得再做一次!

如果具有像这样的相对 URL 的图像标记只知道它必须使用完整的 S3 URL 找到真实路径,那会更好,但我不知道该怎么做。

标签: djangoamazon-s3django-storagedjango-media

解决方案


推荐阅读