OSS 返回 403 错误的原因和解决方案。
AbnormalBucketOwnerStatus
当目标 Bucket 的所属用户账户状态异常时,会返回此错误。
The status of the bucket owner is abnormal
-
问题原因:暂未向目标 Bucket 的所属用户提供服务。
-
解决方案:检查用户的阿里云账号是否已注销或因安全等原因被管控,确认是否因欠费原因被运营商暂停服务。
AccessDenied
当用户没有执行特定操作的权限时,会返回此错误。
Access denied by authorizer's policy
Access denied by bucket policy
-
问题原因:通过 Bucket Policy 的授权访问被拒绝。
-
解决方案:根据不同使用场景灵活配置 Bucket Policy。详情请参见 通过 Bucket Policy 授权用户访问指定资源 。
Access denied by VPC endpoint policy
-
问题原因:客户端所在 VPC 添加了 Policy 授权策略,导致未授权的 Bucket 无法在 VPC 环境内访问。
-
解决方案:检查客户端所在 VPC 配置的 Policy 授权策略。
AccessDenied
-
问题原因:没有相应的访问权限。
-
解决方案:
-
确认使用了正确的 AccessKey ID 和 AccessKey Secret。详情请参见 创建 AccessKey 。
-
确认 RAM 用户是否拥有 Bucket 或 Object 相关操作权限。
-
Anonymous access is forbidden for this operation
-
问题原因:匿名用户没有该操作的对应权限。
-
解决方案:通过 Bucket Policy 授权匿名用户访问目标 Bucket 中的指定资源。详情请参见 通过 Bucket Policy 授权用户访问指定资源 。
Anonymous user has no right to access this bucket
-
问题原因:匿名用户无权访问此 Bucket。
-
解决方案:通过 Bucket Policy 授权匿名用户访问目标 Bucket。详情请参见 通过 Bucket Policy 授权用户访问指定资源 。
Anonymous user has no right to access this object
-
问题原因:匿名用户无权访问此 Object。
-
解决方案:通过 Bucket Policy 授权匿名用户访问目标 Bucket 中的指定资源。详情请参见 通过 Bucket Policy 授权用户访问指定资源 。
Invalid according to Policy: Policy Condition failed: " + RelatedUnit; //XXX
-
问题原因:Policy 表单域中指定的 Conditions 无效。
-
解决方案:确保在 Policy 表单域中指定有效的 Conditions。关于 Policy 表单域中支持的 Conditions 以及 Conditions 匹配方式详情,请参见 附录:Post Policy 。
Invalid according to Policy: Policy Condition failed: ["eq", "$Content-Type", "image/png"]
-
问题原因:上传的文件类型与指定的 Content-Type 类型不符。
-
解决方案:Policy 中的 Content-Type 用于限制表单上传时的文件类型。如果 Content-Type 限制为 image/png,则仅支持上传 image/png 类型的文件。如需上传其他类型的文件,添加对应的 Content-Type 类型。关于常见的 Content-Type 类型列表,请参见 如何设置 Content-Type(MIME)? 。
Invalid according to Policy: Policy expired
-
问题原因:PostObject 中的 Policy 表单域无效。
-
解决方案:Post 请求的 Policy 表单域用于验证请求的合法性。Policy 为一段经过 UTF-8 和 Base64 编码的 JSON 文本,声明了 Post 请求必须满足的条件。Post Policy 格式如下:
{ "expiration": "2014-12-01T12:00:00.000Z", "conditions": [ {"bucket": "johnsmith" }, ["starts-with", "$key", "user/eric/"] }关于 Policy 中支持的 Conditions 详情,请参见 附录:Post Policy 。
Invalid date (should be seconds since epoch)
-
问题原因:请求的时间戳无效。
-
解决方案:Expires 参数的值是一个 Unix time(自 UTC 时间 1970 年 1 月 1 号开始的秒数),用于标识该 URL 的超时时间。
Query string authentication requires the Signature, Expires and OSSAccessKeyId parameters
-
问题原因:URL 签名缺少必要参数。
-
解决方案:URL 签名必须至少包含 Signature、Expires 和 OSSAccessKeyId 参数。URL 签名示例为
http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936**9l&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****。关于 URL 签名的详情,请参见 在 URL 中包含签名 。
Request has expired
-
问题原因:请求已过期。
-
解决方案:根据实际使用场景,设置合理的 Expires。关于在上传文件时如何设置 Expires,请参见 PutObject 、 PostObject 、 AppendObject 和 InitiateMultipartUpload 。
Target object does not reside in the same data center as source object
-
问题原因:不支持跨地域拷贝文件。
-
解决方案:仅支持拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。详情请参见 CopyObject 。
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint
-
问题原因:访问 Bucket 时使用的 Endpoint 不正确。
-
解决方案:确保使用正确的 Endpoint 访问 Bucket。例如 Bucket 所在地域为
oss-cn-hangzhou,则外网 Endpoint 为oss-cn-hangzhou.aliyuncs.com。关于 Endpoint 的更多信息,请参见 通过 IPv6 协议访问 OSS 。
This request is forbidden by kms
-
问题原因:没有 KMS 使用权限。
-
解决方案:确保对指定的 CMK ID 具有使用权限。详情请参见 服务端加密 。
You are denied by bucket referer policy
-
问题原因:防盗链校验失败。
-
解决方案:通过设置 Referer 白名单以及是否允许空 Referer,限制仅白名单中的域名可以访问 Bucket 内的资源。详情请参见 设置防盗链 。
You do not have read acl permission on this object
-
问题原因:没有该 Object 的 ACL 读取权限。
-
解决方案:联系 Object 拥有者授予 GetObjectACL 的权限。
You do not have read permission on this object
-
问题原因:没有该 Object 的读取权限。
-
解决方案:联系 Object 拥有者授予对 Object 的读取权限。
You do not have write acl permission on this object
-
问题原因:没有该 Object 的 ACL 写入权限。
-
解决方案:联系 Object 拥有者授予 PutObjectACL 的权限。
You do not have write permission on this object
-
问题原因:没有该 Object 的写入权限。
-
解决方案:联系 Object 拥有者授予对 Object 的写入权限。
You have no right to access this object
-
问题原因:RAM 用户无权访问此 Object。
-
解决方案:确认 RAM 用户是否拥有 Object 相关操作权限。根据使用场景设置不同访问权限的详情,请参见 教程示例:使用 RAM Policy 控制 OSS 的访问权限 。
You have no right to access this object because of bucket acl
-
问题原因:没有该 Object 的访问权限。
-
解决方案:授予访问者 OSS 相关访问权限,例如 PutObject、GetObject、AppendObject 等。详情请参见 RAM Policy 常见示例 。
AccessForbidden
当 CORS 请求不被允许或其他访问限制时,会返回此错误。
CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec
-
问题原因:没有配置 CORS 或 CORS 配置错误。
-
解决方案:参见 设置跨域资源共享 进行排查。
AccessKeyIdAndSecurityTokenNotMatch
当提供的 AccessKey ID 和安全令牌不匹配时,会返回此错误。
The OSS access key id and security token you provided does not match
-
问题原因:用户提供的 AccessKey 和临时访问凭证不匹配。
-
解决方案:参见 使用 STS 临时访问凭证访问 OSS 进行排查。
BucketDisable
当 Bucket 因安全原因被禁用时,会返回此错误。
BucketDisable
-
问题原因:Bucket 因安全原因被禁用。
-
解决方案:检查账号是否已欠费,或联系技术支持进行安全受限核查。
BucketNotBelongTo
当用户尝试访问不属于自己的 Bucket 时,会返回此错误。
The bucket you access does not belong to you
-
问题原因:当前用户不是目标 Bucket 的拥有者。
-
解决方案:仅 Bucket 拥有者有权限执行此操作。
CnameDenied
当域名绑定操作被拒绝时,会返回此错误。
The cname belongs to another user
-
问题原因:该域名已绑定至其他 Bucket。
-
解决方案:更换域名或通过验证域名所有权强制绑定域名,验证域名所有权会解除域名与其他 Bucket 的绑定关系。请参见 绑定自定义域名 进行排查。
ImageDamage
当上传或处理的图片文件损坏无法正常识别时,会返回此错误。
The image file may be damaged
-
问题原因:图片文件存在部分信息丢失或损坏,导致系统无法正常识别或处理。
-
解决方案:确保源文件完整性,如发现文件损坏请重新上传本地文件。
InvalidAccessKeyId
当提供的 AccessKey ID 格式不正确、不存在或处于禁用状态时,会返回此错误。
The OSS Access Key Id contains non-acceptable characters, which accepts only alphanumeric characters[0-9a-zA-Z] and several special characters[._=]
-
问题原因:输入的 AccessKey ID 包含不支持的字符。
-
解决方案:重新输入 RAM 用户或阿里云账号的正确 AccessKey ID。更多信息,请参见 创建 AccessKey 。
The OSS Access Key Id you provided does not exist in our records
-
问题原因:临时访问凭证已过期并自动失效。
-
解决方案:使用临时访问密钥(AccessKeyId 和 AccessKeySecret)向 App 服务器申请新的临时访问凭证。具体操作,请参见 获取临时访问凭证 。
The OSS Access Key Id you provided is disabled
-
问题原因:AccessKey ID 处于禁用状态。
-
解决方案:重新启用 AccessKey。
InvalidObjectState
当 Object 处于不支持当前操作的状态时,会返回此错误。
The operation is not valid for the object's state
-
问题原因:下载归档类型 Object 时,以下两种情况会导致 Object 状态无效错误。
-
未提交 RestoreObject 请求或上一次提交 RestoreObject 已超时。
-
已提交 RestoreObject 请求,但数据恢复操作尚未完成。
-
-
解决方案:请参见 RestoreObject 进行排查。
InvalidSecurityToken
当提供的安全令牌无效时,会返回此错误。
The security token you provided is invalid
-
问题原因:临时访问凭证无效。
-
解决方案:请参见 使用 STS 临时访问凭证访问 OSS 进行排查。
KmsInDebt
当阿里云账户处于欠费状态导致 KMS 服务访问被拒绝时,会返回此错误。
Current user is indebted
-
问题原因:阿里云账户进入欠费状态时,对密钥管理服务 KMS(Key Management Service)的访问会被拒绝。
-
解决方案:确保阿里云账户不欠费以正常使用 KMS 服务。
KmsInDebtOverdue
当 KMS 服务欠费已逾期时,会返回此错误。
Current user is indebted Overdue
-
问题原因:KMS 服务欠费已逾期。
-
解决方案:及时续费以正常使用 KMS 服务。
KmsUbsmsInvalidBid
当请求者未开通 KMS 服务时,会返回此错误。
Your account partner does not have KMS Service
-
问题原因:请求者未开通 KMS 服务。
-
解决方案:使用 SSE-KMS 对 OSS 数据进行加密前,请先开通 KMS 服务。详情请参见 开通密钥管理服务 。
NonStandardHostForbidden
当使用的 Host 不符合 OSS 标准域名格式时,会返回此错误。
Your host is invalid. Please use Open Storage Service standard host
-
问题原因:Host 格式错误。
-
解决方案:使用标准的域名格式访问 OSS 资源。详情请参见 通过 IPv6 协议访问 OSS 。
PermanentRedirect
当访问 Bucket 时使用的 Endpoint 与 Bucket 实际所在地域的 Endpoint 不一致时,会返回此错误。
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint
-
问题原因:通过 SDK 访问 OSS 中的 Bucket 时,未指定 Endpoint 或指定的 Endpoint 有误。例如创建的 Bucket 位于青岛地域,使用了默认配置的
oss-cn-hangzhou.aliyuncs.com的 Endpoint 地址发起请求,则出现该报错。 -
解决方案:确认请求的 Endpoint 地址与 Bucket 实际的 Endpoint 地址一致。例如需要访问青岛和杭州两个节点的 Bucket,建议创建多个 ossclient,并在 ossclient 中添加
oss-cn-hangzhou.aliyuncs.com和oss-cn-qingdao.aliyuncs.com两个 Endpoint。
RequestTimeTooSkewed
当请求发起时间与 OSS 服务器当前时间相差过大时,会返回此错误。
The difference between the request time and the current time is too large
-
问题原因:请求发起的时间超过 OSS 服务器当前时间 15 分钟。
-
解决方案:检查发送请求设备的系统时间,并根据时区调整到正确时间。
发送请求的机器或设备的系统时间,调整标准如下:
-
OSS 的系统时间采用 GMT 时间,设备的系统时间需要调整到 GMT 时间,或与其相对应的时区时间。GMT 是零时区的区时,即世界标准时间。
-
Windows 系统查看时区的方法:单击 。
例如,时区栏的+08:00 表示设备系统时区是东八区。
-
Linux 或 Unix 系统查看时区的方法:执行
date -R查看时间和时区。下图中的+0800 表示设备系统时区是东八区。
-
-
OSS 支持在多个地域使用。每个地域都使用 GMT 时间,发送请求的设备系统时间也是 GMT 时间。
-
SecondLevelDomainForbidden
当使用二级域名访问 OSS 或域名格式不正确时,会返回此错误。
Please use virtual hosted style to access
-
问题原因:Host 格式错误。
-
解决方案:通过外网访问 OSS 服务时,以 URL 的形式表示访问的 OSS 资源。OSS 的 URL 结构为
<Schema>://<Bucket>.<外网 Endpoint>/<Object>。其中 Schema 包含 HTTP 或者 HTTPS,Bucket 表示存储空间名称,外网 Endpoint 为 Bucket 所在数据中心供外网访问的 Endpoint,Object 填写上传到 OSS 上的文件的访问路径。例如 Region 为华东 1(杭州),Bucket 名称为 examplebucket,Object 访问路径为
destfolder/example.txt,则外网访问地址为https://examplebucket.oss-cn-hangzhou.aliyuncs.com/destfolder/example.txt。
The bucket you are attempting to access must be addressed using OSS third level domain
-
问题原因:Bucket 的请求域名不为三级域名。
-
解决方案:针对 OSS 的网络请求,除了 GetService (ListBuckets)API 以外,其他所有请求的域名均由带有指定 Bucket 信息的三级域名组成。其中,访问域名结构为
BucketName.Endpoint,BucketName 为存储空间名称,Endpoint 为存储空间对应的地域域名。例如https://examplebucket.oss-cn-hangzhou.aliyuncs.com。
SecurityTokenExpired
当提供的安全令牌已过期时,会返回此错误。
The security token you provided has expired
-
问题原因:临时访问凭证已过期。
-
解决方案:重新请求 STS 服务获取临时访问凭证。
SecurityTokenNotSupported
当在不支持 STS Token 的地域或接口中使用安全令牌时,会返回此错误。
Security token is not supported in this region
-
问题原因:当前地域暂不支持使用 STS Token。
-
解决方案:关于哪些地域支持使用 STS Token 的详情,请参见 接入地址 。
This interface does not support security token
-
问题原因:当前接口暂不允许通过临时访问凭证权限进行调用。
-
解决方案:STS Token 仅适用于临时授权给特定用户访问 OSS 资源。如需将 Bucket 开放给他人访问,请参见 访问控制概述 选择适用的授权机制。
SignatureDoesNotMatch
当客户端提供的签名与服务端计算的签名不一致时,会返回此错误。
The request signature we calculated does not match the signature you provided
-
问题原因:使用 API 接口或 SDK 访问 OSS 时,客户端需要携带签名信息以供 OSS 服务端进行身份认证。如果服务器返回如上所示的响应,说明请求中提供的签名与服务端计算的不一致,导致请求被拒绝。
-
解决方案:请参考以下步骤进行排查。
-
确认签名所用的 AccessKey ID 与 AccessKey Secret 是否填写正确。
可以使用 AccessKey ID 与 AccessKey Secret 登录 ossbrowser 来验证正确性。具体步骤,请参见 安装 ossbrowser 2.0 并 登录 ossbrowser 2.0 。
-
检查签名算法是否正确。
OSS 提供两种携带签名的请求方式,分别为 在 Header 中包含签名 和 在 URL 中包含签名 。关于这两种签名方式的算法说明如下:
-
在 Header 中包含签名
StringToSign = VERB + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource Signature = base64(hmac-sha1(AccessKeySecret, StringToSign) -
在 URL 中包含签名
StringToSign = VERB + "\n" + CONTENT-MD5 + "\n" + CONTENT-TYPE + "\n" + EXPIRES + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource Signature = urlencode(base64(hmac-sha1(AccessKeySecret, StringToSign)))
如果业务场景允许,推荐使用 SDK 访问 OSS,免去手动计算签名的过程。具体步骤,请参见 使用阿里云 SDK 发起请求概述 。
-
-
比对响应体中的
StringToSign字段与发起请求的内容是否存在差异。StringToSign字段表示待签字符串,即签名算法中需要使用 AccessKey Secret 进行加密的内容。请求示例如下:
PUT /bucket/abc?acl Date: Wed, 24 May 2023 02:12:30 GMT Authorization: OSS qn6q**************:77Dv**************** x-oss-abc: mymeta以上请求计算得到的待签字符串应为:
PUT\n\n\nWed, 24 May 2023 02:12:30 GMT\nx-oss-abc:mymeta\n/bucket/abc?acl
关于签名错误常见场景的更多信息,请参见 0002-00000040 。
-
TransferAccelerationDisabled
当在不支持传输加速功能的地域使用传输加速时,会返回此错误。
Transfer acceleration is disabled
-
问题原因:当前地域不支持传输加速功能。
-
解决方案:请联系 技术支持 解决该问题。
UserDisable
当用户账号被禁用或未开通 OSS 服务时,会返回此错误。
UserDisable
-
问题原因:
-
账号欠费或者由于安全原因,账号被禁用。
-
未开通 OSS 服务。
-
-
解决方案:
-
检查账号是否已欠费,或联系技术支持进行安全受限核查。
-
开通 OSS 服务。
-
WORMConfigurationLocked
当合规保留策略锁定后尝试删除策略时,会返回此错误。
The WORM Configuration is locked
-
问题原因:合规保留策略锁定后试图删除策略。
-
解决方案:保留策略已提交锁定后,不允许删除此策略,且无法缩短策略保护周期,仅可以延长保护周期。详情请参见 保留策略 。