OSS会为每一个存储空间(Bucket)分配默认的访问域名,本文介绍OSS访问域名的构成规则及使用方式。

OSS域名构成规则

针对OSS的网络请求,除了GetService(ListBuckets)以及DescribeRegions API以外,其他所有请求的域名都是由带有指定Bucket信息的三级域名组成的。

访问域名结构为BucketName.Endpoint。BucketName为您的存储空间名称,Endpoint为存储空间对应的地域域名。

Endpoint分为外网、内网以及传输加速Endpoint。

说明
  • OSS以HTTP RESTful API的形式对外提供服务。访问不同的Region需要不同的Endpoint。关于Region和Endpoint对照表,请参见访问域名和数据中心
  • 内网、外网Endpoint可以直接使用,无需额外配置。
  • 传输加速Endpoint使用前需先开启Bucket的传输加速功能。具体操作,请参见开启传输加速
  • 您可以通过绑定自定义域名绑定传输加速域名,将OSS的外网Endpoint替换为您的自定义域名。

以华东1(杭州)地域的访问域名为例,说明如下。

外网Endpoint

oss-cn-hangzhou.aliyuncs.com

内网Endpoint

oss-cn-hangzhou-internal.aliyuncs.com

传输加速Endpoint

传输加速Endpoint又分为全球加速Endpoint以及非中国内地加速Endpoint。

  • 传输加速全球加速Endpoint
    oss-accelerate.aliyuncs.com
  • 传输加速非中国内地加速Endpoint
    oss-accelerate-overseas.aliyuncs.com

通过外网访问OSS

外网指的是互联网。通过外网访问产生的流入流量(写)是免费的,流出流量(读)是收费的。

说明 OSS费用详情请参见OSS产品定价计量项和计费项

外网访问OSS有以下两种方式。

方式一:以URL的形式访问OSS Object

以URL形式访问OSS Object时,与Object的读写权限ACL有关。

重要 OSS访问域名需携带Object访问路径才可以被访问。如果仅使用访问域名,例如examplebucket.oss-cn-hangzhou.aliyuncs.com,会有报错提示。如果您希望通过OSS访问域名直接访问Object,可以通过配置静态网站托管来实现。更多信息,请参见静态网站托管介绍
Object ACL公共读或公共读写私有
URL格式<Schema>://<Bucket>.<外网Endpoint>/<Object><Schema>://<Bucket>.<外网Endpoint>/<Object>?签名信息
参数说明
  • Schema:HTTP或者为HTTPS。
  • Bucket:OSS存储空间名称。
  • 外网Endpoint:Bucket所在数据中心供外网访问的Endpoint,各地域Endpoint详情请参见访问域名和数据中心
  • Object:上传到OSS上的文件的访问路径。
除签名信息以外,其他参数的用法与公共读或公共读写Object相同。签名信息包含标识URL超时时间的Expires、密钥中的AccessKey ID以及Signature三种元素。

有关在文件URL中添加签名的具体步骤,请参见在URL中包含签名

使用示例您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的Object,该Object保存在exampledir目录下,且允许匿名访问。此时,文件URL为https://examplebucket.oss-cn-hangzhou.aliyuncs.com/exampledir/example.txt您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的私有Object,该Object保存在exampledir目录下。此时,文件URL为https://examplebucket.oss-cn-hangzhou.aliyuncs.com/exampledir/example.txt?OSSAccessKeyId=nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****

方式二: 通过OSS SDK配置外网访问域名

OSS SDK会对您的每一个操作拼接访问域名。但您在对不同地域的Bucket进行操作的时候需要设置不同的Endpoint。

以Java SDK为例,对华东1(杭州)的Bucket进行操作时,需要在对类实例化时设置Endpoint。

  String accessKeyId = "yourAccessKeyId";
  String accessKeySecret = "yourAccessKeySecret";
  String endpoint = "oss-cn-hangzhou.aliyuncs.com";
  OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);

通过内网访问OSS

内网指的是阿里云同地域产品之间的内部通信网络,例如您通过ECS云服务器访问同地域的OSS服务。内网产生的流入和流出流量均免费,但是请求次数仍会计费。
说明 OSS费用详情请参见OSS定价页计费概述

内网访问OSS有以下两种方式。

方式一:以URL的形式访问OSS Object

以URL形式访问OSS Object时,与Object的读写权限ACL有关。

Object ACL公共读或公共读写私有
URL格式<Schema>://<Bucket>.<内网Endpoint>/<Object><Schema>://<Bucket>.<内网Endpoint>/<Object>?签名信息
参数说明
  • Schema:HTTP或者为HTTPS。
  • Bucket:OSS存储空间名称。
  • 内网Endpoint:Bucket所在数据中心供同地域ECS访问的内网Endpoint。有关各地域的Endpoint详情,请参见访问域名和数据中心
  • Object:上传到OSS上的文件的访问路径。
除签名信息以外,其他参数的用法与公共读或公共读写Object相同。签名信息包含标识URL超时时间的Expires、密钥中的AccessKey ID以及Signature三种元素。

有关在文件URL中添加签名的具体步骤,请参见在URL中包含签名

使用示例您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的Object,该Object保存在exampledir目录下,且允许匿名访问。此时,文件夹URL为https://examplebucket.oss-cn-hangzhou-internal.aliyuncs.com/exampledir/example.txt您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的私有Object,该Object保存在exampledir目录下。此时,文件URL为https://examplebucket.oss-cn-hangzhou-internal.aliyuncs.com/exampledir/example.txt?OSSAccessKeyId=nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****

方式二:通过ECS使用OSS SDK配置内网Endpoint

以Java SDK为例,对华东1(杭州)地域的Bucket进行操作时,需要将Endpoint设置为华东1(杭州)地域的内网Endpoint。

String accessKeyId = "yourAccessKeyId";
  String accessKeySecret = "yourAccessKeySecret";
  String endpoint = "oss-cn-hangzhou-internal.aliyuncs.com";
  OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);

同一个Region的ECS和OSS之间内网互通,不同Region的ECS和OSS之间内网不互通。例如您的OSS有两个Bucket,并且购买了华北2(北京)的ECS:

  • 其中一个Bucket名称为srcbucket,所在Region为华北2(北京),您可以在华北2(北京)的ECS中使用https://srcbucket.oss-cn-beijing-internal.aliyuncs.com来访问srcbucket的资源。
  • 另外一个Bucket名称为destbucket,所在Region为华北1(青岛),您无法在华北2(北京)的ECS中使用https://destbucket.oss-cn-qingdao-internal.aliyuncs.com来访问destbucket的资源,必须使用外网地址https://destbucket.oss-cn-qingdao.aliyuncs.com

通过传输加速域名访问OSS

OSS传输加速支持数据上传、下载加速,可优化跨国、跨洋数据上传、下载体验。使用传输加速域名前,需先开启传输加速功能。开启后,您只需将外网Endpoint替换为传输加速Endpoint,即可实现数据传输加速。

以全球加速Endpoint为例,通过浏览器访问位于华东1(杭州)的存储空间examplebucket根目录下的文件myphoto.jpg,且文件读写权限ACL为公共读或者公共读写,此时文件URL为https://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg

如果myphoto.jpg的读写权限ACL为私有,则还要在文件URL中添加签名信息。例如https://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg?OSSAccessKeyId=nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****。有关在文件URL中添加签名的具体步骤,请参见在URL中包含签名

更多关于传输加速功能的介绍,请参见传输加速

通过IPv6地址访问OSS

IPv6是互联网工程任务组IETF(Internet Engineering Task Force)设计用于替代现行版本IP协议(IPv4)的下一代IP协议,它可以让地球上的每一粒沙子都拥有地址。目前OSS已支持通过IPv6、IPv4双栈域名访问。

您的IPv6、IPv4客户端均可以使用OSS提供的统一双栈域名访问您的Bucket,DNS服务器将按照您使用的协议版本解析对应的OSS服务器地址。例如,杭州地域的Endpoint为cn-hangzhou.oss.aliyuncs.com,Bucket名称为examplebucket,则IPv6、IPv4客户端都可以通过https://examplebucket.cn-hangzhou.oss.aliyuncs.com访问该Bucket。

重要 当前不支持通过专有网络VPC或经典网络ECS解析IPv6或IPv4地址。

目前可以通过IPv6协议访问的Endpoint如下:

说明 OSS管理控制台当前仅展示Bucket的IPv4协议访问的Endpoint,下表所示的IPv6协议访问的Endpoint也可用于访问相应Bucket。关于IPv4协议访问的Endpoint的更多信息,请参见访问域名和数据中心
RegionEndpoint
华东1(杭州)cn-hangzhou.oss.aliyuncs.com
华东2(上海)cn-shanghai.oss.aliyuncs.com
华北1(青岛)cn-qingdao.oss.aliyuncs.com
华北2(北京)cn-beijing.oss.aliyuncs.com
华北 3(张家口)cn-zhangjiakou.oss.aliyuncs.com
华北5(呼和浩特)cn-huhehaote.oss.aliyuncs.com
华北6(乌兰察布)cn-wulanchabu.oss.aliyuncs.com
华南1(深圳)cn-shenzhen.oss.aliyuncs.com
华南2(河源)cn-heyuan.oss.aliyuncs.com
华南3(广州)cn-guangzhou.oss.aliyuncs.com
西南1(成都)cn-chengdu.oss.aliyuncs.com
中国香港cn-hongkong.oss.aliyuncs.com
杭州金融云cn-hangzhou-finance.oss.aliyuncs.com
上海金融云cn-shanghai-finance.oss.aliyuncs.com
深圳金融云cn-shenzhen-finance.oss.aliyuncs.com