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

Django部署于Vercel,Clever Cloud FS Bucket存储用户文件失败排查

问题排查与解决方案

一、Clever Cloud FS Bucket连接超时问题排查

1. 手动验证SFTP连接

先抛开Django,用SFTP客户端(如WinSCP、FileZilla)直接测试配置里的主机、用户名、密码:

  • 如果连不上,说明是服务商端配置问题:要么主机地址错误,要么IAM用户权限不足,要么Bucket的外部访问未开启。
  • 如果能连上,再回到Django配置找问题。

2. 修正Django配置参数

调整你的settings.py配置,修复几个潜在问题:

import os

DEFAULT_FILE_STORAGE = 'storages.backends.sftpstorage.SFTPStorage'

SFTP_STORAGE_USE_AGENT = False
SFTP_STORAGE_HOST = 'bucket-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx-fsbucket.services.clever-cloud.com'
SFTP_STORAGE_USERNAME = 'username@bucket_name'
# 从环境变量取密码,禁止硬编码
SFTP_STORAGE_PASSWORD = os.getenv('SFTP_STORAGE_PASSWORD')
# 明确指定SFTP端口(Clever Cloud默认是22,以官方文档为准)
SFTP_STORAGE_PORT = 22
# 指定Bucket内的存储根路径
SFTP_STORAGE_ROOT = '/portfolio/'

# 注释MEDIA_ROOT,Vercel是无状态平台,本地存储不可靠且无意义
# MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = 'https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-fsbucket.services.clever-cloud.com/portfolio/'

3. 关键配置检查点

  • 权限验证:确认IAM用户拥有FS Bucket的storage:write和storage:read权限,在Clever Cloud控制台给用户分配对应权限。
  • 公开访问设置:在Clever Cloud控制台开启FS Bucket的公开读取权限,否则即使上传成功,前端也无法访问文件。
  • Vercel环境变量:将密码、主机等敏感信息存入Vercel环境变量,部署时确保变量已正确加载。

二、免费替代文件存储方案

如果Clever Cloud的SFTP方案仍无法解决,推荐以下适配Django的免费存储:

  • Cloudflare R2:10GB免费存储,无出站带宽费,兼容S3 API,使用django-storages的S3Boto3Storage配置即可,无需绑定信用卡。
  • Backblaze B2:10GB免费存储,每月1GB免费下载额度,兼容S3 API,配置逻辑与R2一致。
  • Fly.io Volumes:若将Django迁移到Fly.io,可使用3GB免费存储卷,适合小流量应用(需绑定信用卡但无自动扣费)。

内容的提问来源于stack exchange,提问作者Jadepy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:12:42