迁移 Django 应用程序以使用在线媒体存储

Migrating Django app to use online media storage

我在服务器上有一个 Django 应用程序 运行。当前用户上传存储在服务器文件系统中。

我已经知道如何设置 S3 存储了。在不破坏 API 且现有上传仍然可用的情况下,将现有上传迁移到 S3 的最佳方法是什么?

这些文件以两种方式提供给前端:

  1. 直接通过 /media/path/to/upload 端点:
/media/<path>   django.views.static.serve   
  1. 通过视图集:
/api/v1/users/<user_pk>/items/<item_pk>/attachments/<pk>/ project.app.views.ItemAttachmentsViewSet

以下是否有意义:

  1. 更改存储后端
  2. 遍历所有模型对象
  3. 保存每个模型对象以获取上传的文件
  4. /media/path 转到一个新视图,该视图将提供与 ItemAttachmentsViewSet 类似的文件。 ?或者有更好的方法吗?

问题中概述的过程是我最终做的,除了第 4 步,结果证明这是不必要的。