请求对象存储OSS资源时提示“SecondLevelDomainForbidden”错误

问题描述

请求阿里云对象存储OSS中的资源时,提示“SecondLevelDomainForbidden”错误码,详细报错如下:

  • 错误一:The bucket you are attempting to access must be addressed using OSS third level domain

  • 错误二:Please use virtual hosted style to access

问题原因

  • 发生错误一的原因:Bucket的请求域名不为三级域名。

  • 发生错误二的原因:Host错误。

解决方案

请根据具体报错,执行以下相应的操作:

  • 错误一的解决方法:针对OSS的网络请求,除了GetService(ListBuckets)API以外,其他所有请求的域名均由带有指定Bucket信息的三级域名组成。访问域名结构为BucketName.Endpoint,BucketName为您的存储空间名称,Endpoint为存储空间对应的地域域名。例如https://examplebucket.oss-cn-hangzhou.aliyuncs.com

  • 错误二的解决方法:通过外网访问OSS服务时,以URL的形式表示访问的OSS资源,详情请参见OSS访问域名使用规则。OSS的URL结构为[$Schema]://[$Bucket].[$Endpoint]/[$Object] 。例如,您的Region为华东1(杭州),Bucket名称为examplebucket,Object访问路径为destfolder/example.txt,则外网访问地址为https://examplebucket.oss-cn-hangzhou.aliyuncs.com/destfolder/example.txt

    说明
    • [$Schema]包含HTTP或者HTTPS。

    • [$Bucket]表示存储空间名称。

    • [$Endpoint]为Bucket所在数据中心供外网访问的Endpoint,详情请参见Region与Endpoint的对应关系

    • [$Object]填写上传到OSS上的文件的访问路径。

适用于

  • 对象存储OSS