用途:django-storages 是 Django 的云存储后端包,为不同云厂商提供统一的文件存储 API,用于把用户上传文件与静态资源放到云端对象存储。
主要能力:支持 Amazon S3、Google Cloud Storage、Azure Blob Storage 等后端;通过 STORAGES 设置切换后端;支持签名 URL(querystring_auth、querystring_expire)、default_acl 权限控制、custom_domain 与 CDN 集成、Cache-Control 头、对象存储类别与 KMS 加密等选项。
使用方式:安装示例为 pip install django-storages[boto3](AWS S3)。在 settings.py 中用 STORAGES 字典配置 default 与 staticfiles 后端,例如 BACKEND 设为 storages.backends.s3.S3Storage,OPTIONS 中填 bucket_name、region_name。凭证应来自环境变量或 IAM 角色,不要写进 settings。代码中通过 django.core.files.storage.default_storage 统一读写,无需按环境分支。
关键注意:用户上传文件名中的非 ASCII 字符、空格与特殊字符是常见故障点,建议在 upload_to 中用 unicodedata、slugify 与 uuid 清洗并保证唯一,原始文件名另存字段。私有内容应保持 default_acl 为 None 并启用签名 URL;公开资源才用 public-read。
适用场景:需要跨云厂商切换存储、需要签名 URL 或 CDN 分发、需要统一管理上传文件的 Django 项目。
限制:本地开发建议用 FileSystemStorage;随代码发布的静态资源应走构建管线与 collectstatic;单桶且无需切换后端时可直接用 SDK;浏览器直传大文件宜用预签名 URL。资料未提供具体收费与价格信息。