生产环境Django项目媒体文件免费存储方案(无需提供信用卡)
Supabase对象存储对接Django操作步骤
- 先安装所需依赖包:
pip install django-storages boto3,生产环境记得把这两个包写入requirements.txt - 在Supabase后台创建存储桶,按需设置为公开或私有,公开桶可直接通过URL访问资源,私有桶需要生成签名URL访问
- 在Django项目的
settings.py中添加如下配置,替换为你自己的Supabase项目参数:
INSTALLED_APPS = [ # 其他原有app 'storages', ] # Supabase S3兼容配置 DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' AWS_ACCESS_KEY_ID = "你的Supabase S3 Access Key" AWS_SECRET_ACCESS_KEY = "你的Supabase S3 Secret Key" AWS_STORAGE_BUCKET_NAME = "你创建的存储桶名称" AWS_S3_ENDPOINT_URL = "https://<你的Supabase项目ID>.supabase.co/storage/v1/s3" AWS_S3_REGION_NAME = "ap-southeast-1" # 替换为你Supabase项目对应的区域 AWS_S3_FILE_OVERWRITE = False # 同名文件不覆盖,按需开启 AWS_QUERYSTRING_AUTH = False # 公开桶可关闭签名,私有桶需设为True # 媒体文件配置 MEDIA_URL = f"{AWS_S3_ENDPOINT_URL}/{AWS_STORAGE_BUCKET_NAME}/public/"
- 配置完成后原有业务代码无需修改,模型中
ImageField、FileField的上传、读取操作会自动对接Supabase存储。
其他无需信用卡的免费媒体存储方案
- Cloudflare R2:提供10GB免费存储空间,无出站流量费用,兼容S3 API,对接方式和上述Supabase配置逻辑完全一致,仅需替换对应的密钥、端点、桶名参数即可
- 七牛云对象存储Kodo:国内用户可选,个人实名认证无需信用卡,提供10GB免费存储空间、10GB/月免费出站流量,支持通过
django-storages对接 - 腾讯云对象存储COS:国内用户可选,个人实名认证无需信用卡,新用户可享6个月50GB免费存储空间,同样兼容S3 API对接
内容的提问来源于stack exchange,提问作者Nahidujjaman Hridoy
相关产品推荐
相关产品推荐

