文件存储配置
settings._get_default_storage_config():当 R2_BUCKET、R2_ACCESS_KEY_ID、R2_SECRET_ACCESS_KEY、R2_ENDPOINT_URL 四个都非空 时使用 storages.backends.s3.S3Storage,否则 FileSystemStorage → MEDIA_ROOT(默认项目下 media/)。
files.File.provider 记录 local 或 r2。下载统一走 /files/<id>/download/,权限见 Files and Storage。
生产注意
- 配了 R2:不必让 Nginx 提供 media。
- 未配 R2 且
DEBUG=False:urls.py不会static(MEDIA_URL),必须 Nginxalias到MEDIA_ROOT,否则简历/票据 404。 - WhiteNoise 只管 static,不管用户上传。