易优CMS阿里云OSS上传图片报错_AccessKey_Bucket_Endpoint_排查
易优CMS配置阿里云OSS上传报错,按错误码精准排查。
配置项(后台→系统→基本参数→附件设置→OSS): - AccessKey ID、AccessKey Secret - Bucket名称、Endpoint、上传目录、访问域名
错误码1:NoSuchBucket - Bucket名错误,或Bucket和Endpoint地域不匹配。 - OSS控制台确认Bucket存在,复制准确名称(全小写)。 - Endpoint必须和Bucket同地域: - 杭州→oss-cn-hangzhou.aliyuncs.com - 上海→oss-cn-shanghai.aliyuncs.com - 北京→oss-cn-beijing.aliyuncs.com - 阿里云服务器同地域可用内网Endpoint(带-internal)。
错误码2:AccessDenied - RAM用户无Bucket读写权限。 - RAM控制台→用户→加AliyunOSSFullAccess。 - 或自定义最小权限策略。
错误码3:InvalidAccessKeyId - AccessKey ID不存在/被禁用/被删除。 - RAM控制台检查用户和AccessKey状态。 - 重新创建AccessKey。
错误码4:SignatureDoesNotMatch - Secret错误,或签名计算问题。 - 重新复制Secret,确保无空格/换行。 - 服务器时间不准:`ntpdate ntp.aliyun.com`同步。 - 重新生成一对AccessKey测试。
错误码5:连接超时 - Endpoint错误(用了内网地址但服务器不在阿里云)。 - `curl -I Endpoint地址`测试。 - 换外网Endpoint测试。 - 检查防火墙/安全组是否允许出站443。
错误码6:上传成功但图片不显示 - 访问域名配置错误。 - Bucket权限不是公共读:OSS控制台→权限管理→读写权限→公共读。 - 自定义域名没绑定/没解析: - OSS控制台→传输管理→域名管理→绑定用户域名。 - DNS加CNAME指向Bucket外网域名。 - 没绑自定义域名就填Bucket默认外网域名。
错误码7:跨域CORS错误 - 浏览器直传OSS时需要。 - OSS控制台→数据安全→跨域设置→添加: - 来源:网站域名 - Methods:POST, GET, PUT - Headers:* - 易优默认服务器端上传,一般不需要CORS。
错误码8:PHP扩展缺失 - curl(OSS SDK用)、openssl(HTTPS)。 - 宝塔PHP设置→安装扩展确认。 - `php -m|grep -E "curl|openssl"`。
错误码9:文件太大 - PHP的upload_max_filesize和post_max_size太小。 - 宝塔PHP设置里调大(如50M),重启PHP。
测试步骤: 1. 用OSS官方工具ossbrowser测试同一对密钥能否上传。 - 能→密钥权限正常,是易优配置问题。 - 不能→密钥/权限问题,先修OSS侧。 2. 易优后台传50KB小jpg,看具体报错。 3. 查OSS访问日志,看请求详细错误。
配置成功验证: - 后台上传图片,OSS控制台文件管理能看到。 - 前台图片URL是访问域名,正常显示。 - 服务器磁盘不增长(图片在OSS)。
注意事项: - AccessKey Secret只在创建时显示一次,忘了重新生成。 - 密钥不要泄露,不要提交到Git。 - 公共读Bucket适合网站图片,私有Bucket需要签名URL。 - OSS有流量费用,访问量大注意成本,可配合CDN。
OSS适合图片多的站点,节省服务器存储和带宽。配置核心是权限(AccessKey)和地域(Endpoint),大部分报错都是这两个的问题。

更新时间:2026-08-26 17:50:22
上一篇:宝塔面板外网地址无法访问的原因和解决方法:完整排查手册