我的知识记录

易优CMS阿里云OSS上传图片报错_NoSuchBucket_AccessDenied_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 - 深圳→oss-cn-shenzhen.aliyuncs.com - 阿里云服务器同地域可用内网Endpoint(带-internal),其他用外网。 - 修复:填正确Bucket名和对应地域Endpoint。

错误码2:AccessDenied - 原因:RAM用户无Bucket读写权限。 - RAM控制台→用户→权限,加AliyunOSSFullAccess。 - 或自定义最小权限策略: ``` {"Version":"1","Statement":[{"Effect":"Allow","Action":["oss:*"],"Resource":["acs:oss:*:*:bucket名","acs:oss:*:*:bucket名/*"]}]} ```

错误码3:InvalidAccessKeyId - AccessKey ID不存在/被禁用/被删除。 - RAM控制台检查用户状态和AccessKey状态。 - 重新创建AccessKey,ID和Secret都更新。

错误码4:SignatureDoesNotMatch - Secret错误,或签名计算问题。 - 重新复制Secret,确保无空格/换行。 - 服务器时间不准:`ntpdate ntp.aliyun.com`同步(时间差太大签名失效)。 - 重新生成一对AccessKey测试。

错误码5:连接超时 - Endpoint错误(用了内网地址但服务器不在阿里云)。 - 服务器网络不通。 - `curl -I Endpoint地址`测试。 - 换外网Endpoint测试。 - 检查防火墙/安全组是否允许出站443。

错误码6:上传成功但图片不显示 - 访问域名配置错误。 - Bucket权限不是公共读:OSS控制台→权限管理→读写权限→公共读。 - 自定义域名没绑定/没解析: - OSS控制台→传输管理→域名管理→绑定用户域名(如img.example.com)。 - 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。 - OSS本身单文件最大48.8TB,不限制。

测试步骤: 1. 用OSS官方工具ossbrowser测试同一对密钥能否上传。 - 能→密钥权限正常,是易优配置问题。 - 不能→密钥/权限问题,先修OSS侧。 2. 易优后台传50KB小jpg,看具体报错。 3. 查OSS访问日志(控制台→日志管理),看请求详细错误。

配置成功验证: - 后台上传图片,OSS控制台文件管理能看到。 - 前台图片URL是访问域名,正常显示。 - 服务器磁盘不增长(图片在OSS)。

注意事项: - AccessKey Secret只在创建时显示一次,忘了重新生成。 - 密钥不要泄露,不要提交到Git。 - 公共读Bucket任何人能读,适合网站图片;私有Bucket需要签名URL,不适合公开图片。 - OSS有流量费用,访问量大注意成本,可配合CDN回源减免。 - Bucket名全小写,不能有大写和特殊字符。

OSS适合图片多的站点,节省服务器存储和带宽。配置核心是权限(AccessKey)和地域(Endpoint),大部分报错都是这两个的问题。

易优CMS阿里云OSS上传图片报错_NoSuchBucket_AccessDenied_Endpoint_排查

标签:

更新时间:2026-08-26 17:28:08

上一篇:如何修改模板上面内容图片_网站模板图片替换与尺寸适配教程

下一篇:宝塔面板LAMP环境安装_Apache配置_伪静态_.htaccess_MPM优化