You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将Django Admin上传的图片存储至DigitalOcean Spaces

问题原因与解决方案

你目前只配置了静态文件的存储规则,但Django中用户上传的媒体文件(比如Admin后台上传的图片)是由独立的配置项控制的,所以需要补充媒体文件的存储配置。

需要补充的核心配置

在现有配置中添加以下代码,指定媒体文件的存储后端和访问路径:

# 媒体文件存储配置
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
MEDIA_URL = f"{AWS_S3_ENDPOINT_URL}/media/"

进阶优化(可选)

如果想把静态文件和媒体文件分开存到Spaces的不同目录下,让文件结构更清晰,可以自定义存储类:

from storages.backends.s3boto3 import S3Boto3Storage

# 自定义静态文件存储类
class StaticStorage(S3Boto3Storage):
    location = 'static'

# 自定义媒体文件存储类
class MediaStorage(S3Boto3Storage):
    location = 'media'

然后修改对应的全局配置项(注意替换你的项目名为实际项目名称):

STATICFILES_STORAGE = '你的项目名.settings.StaticStorage'
DEFAULT_FILE_STORAGE = '你的项目名.settings.MediaStorage'
STATIC_URL = f"{AWS_S3_ENDPOINT_URL}/static/"
MEDIA_URL = f"{AWS_S3_ENDPOINT_URL}/media/"

完成配置后,Admin上传的图片会自动存储到DigitalOcean Spaces的media目录,访问路径也会直接指向Spaces的对应地址。

内容的提问来源于stack exchange,提问作者Lutaaya Huzaifah Idris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 00:12:07