概述

本文主要介绍访问OSS资源时出现403状态码的排查方法。

详细信息

以下介绍了OSS常见的几种403错误描述及排查解决方法。如果您遇到的错误不在该表格中,请参见其他报错

错误分类  错误码和错误信息 错误原因 解决办法
欠费相关

ErrorCode: UserDisable

ErrorMessage:  UserDisable

  • OSS欠费被禁
  • 由于安全原因被禁
UserDisable.UserDisable错误
时间

ErrorCode: RequestTimeTooSkewed
ErrorMessage: The difference between the request time and the current time is too large.

发送请求的时间与OSS收到请求的时间间隔超出了15分钟,OSS从安全考虑认为该请求是无效的,返回报错。

请检查发送请求设备的系统时间,并根据时区调整到正确时间。详情请参见RequestTimeTooSkewed.The difference between…错误

文件损坏

ErrorCode: ImageDamage
ErrorMessage: The image file may be damaged.

说明图片文件有部分信息丢失或损坏,导致无法正常识别或处理。 ImageDamage.The image file may be damaged错误
跨域

ErrorCode: AccessForbidden

ErrorMessage: 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配置错误 OSS跨域资源共享(CORS)出现报错的排查方法
防盗链

ErrorCode: AccessDenied

ErrorMessage: You are denied by bucket referer policy.

访问域名不在OSS防盗链的白名单中。 设置OSS防盗链后访问OSS资源出现“You are denied by bucket referer policy”错误
权限

ErrorCode: AccessDenied

ErrorMessage: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

Bucket和Endpoint不符 OSS权限相关常见错误的排查方法

ErrorCode: AccessDenied
ErrorMessage: AccessDenied

说明访问OSS的用户没有当前操作的权限。

ErrorCode: InvalidAccessKeyId
ErrorMessage: The OSS Access Key Id you provided does not exist in our records.

原因可能是AccessKeyID禁用或不存在。

ErrorCode: SignatureDoesNotMatch 
ErrorMessage: The request signature we calculated does not match the signature you provided. Check your key and signing method.

签名不匹配。

ErrorCode: AccessDenied

ErrorMessage: You are forbidden to list buckets.

无ListBuckets权限 如果需要修改权限,可参考基于读写权限ACL的权限控制中的权限列表赋予相应的权限。

ErrorCode: AccessDenied

ErrorMessage: You do not have write acl permission on this object

无SetObjectAcl权限

ErrorCode: AccessDenied

ErrorMessage: You do not have read acl permission on this object.

无GetObjectAcl权限

ErrorCode: AccessDenied

ErrorMessage: The bucket you access does not belong to you.

子用户没有Bucket管理的权限(如GetBucketAcl CreateBucket、DeleteBucket SetBucketReferer、 GetBucketReferer等) 如果需要修改权限,可参考使用RAM Policy控制OSS的访问权限修改权限。

ErrorCode: AccessDenied

ErrorMessage: You have no right to access this object because of bucket acl.

子用户/临时用户没有访问Object的权限(如putObject getObject、appendObject deleteObject、postObject)等

ErrorCode: AccessDenied

ErrorMessage: Access denied by authorizer’s policy.

临时用户访问无权限,该临时用户角色扮演指定授权策略,该授权策略无权限

ErrorCode: AccessDenied

ErrorMessage: You have no right to access this object.

子用户/临时用户无当前操作权限(如initiateMultipartUpload等)

ErrorCode: AccessDenied

ErrorMessage: Invalid according to Policy: Policy expired.

PostObject中Policy无效 PostObject

ErrorCode: AccessDenied

ErrorMessage: Invalid according to Policy: Policy Condition failed:["eq", "$Content-Type", "application/octet-stream"] …

Content-Type限定了,比如请求中Content-Type限定为image/png,而实际与限定不符。 设置Content-Type

“UserDisable.UserDisable”错误

以下是访问OSS出现的UserDisable.UserDisable错误信息。

<Code>UserDisable</Code>
<Message>UserDisable</Message>

原因及解决方法

  • 如果是欠费原因被禁,则在OSS管理控制台上打开费用中心,检查是否欠费。如果欠费,请及时充值。
    说明
    • OSS欠费后,还可以正常使用24小时,24小时后禁止访问。
    • 历史数据保留15天,15天后历史数据将被删除。
    • 当在消息中心看到阿里云OSS欠费提醒后,请及时充值,否则会影响您的正常使用。
  • 如果是安全原因被禁,则在OSS管理控制台中打开消息中心,在右侧的安全消息中查看违规通知。违规的原因有很多,比如使用OSS做私服、违禁图片、涉暴等。
    说明:如果账户处于被禁状态,请务必处理,重新申请新账户,无法保证正常使用。

“RequestTimeTooSkewed.The difference between…”错误

访问OSS出现的详细报错如下。

<Code>RequestTimeTooSkewed</Code>
<Message>The difference between the request time and the current time is too large.</Message>

原因及解决方法

发送请求的时间与OSS收到请求的时间间隔超出了15分钟,OSS从安全考虑认为该请求是无效的,返回报错。请检查发送请求设备的系统时间,并根据时区调整到正确时间。发送请求的机器或设备的系统时间,调整标准如下。

  • OSS的系统时间采用GMT时间,您的设备的系统时间需要调整到GMT时间,或与其相对应的时区时间。GMT(Greenwich Mean Time)是零时区的区时,即世界标准时间。
    • Windows系统查看时区的方法:通过控制面板>时钟、语言和区域>设置日期和时间,打开日期和时间,时区栏的+08:00表示您的设备时区是东八区。
    • Linux/Unix系统查看时区的方法:执行date -R查看时间和时区。下图中的+0800表示您的设备系统时区是东八区。
  • 使用多个地域的OSS是可以实现的。每个地域的OSS都使用GMT时间,您发送请求的设备系统时间也是GMT时间。

“ImageDamage.The image file may be damaged”错误

访问OSS出现的详细报错如下。

<Code>ImageDamage</Code> 
<Message>The image file may be damaged.</Message>

原因及解决方法

说明图片文件有部分信息丢失或损坏,导致无法正常识别或处理。您可能会有疑问,在本地使用图片浏览器可以打开图片,但是使用OSS处理时报错。这是因为图片浏览器会对损坏的图片做些处理,OSS图片服务暂时没有这个操作。请确保源文件的没有被损坏,如有损坏请重新上传本地文件。

其他报错

请根据SDK返回的错误码、错误信息判断原因,特别是错误信息会提示错误原因。如果怀疑错误跟网络环境有关,请使用ossutil排查问题,ossutil会给出可能的原因。

相关文档

适用于

  • 对象存储 OSS