访问域名(Endpoint)
OSS以HTTP RESTful API的形式对外提供服务,会为每一个存储空间(Bucket)分配默认的访问域名。
OSS域名构成规则
针对OSS的网络请求,除了GetService(ListBuckets)以及DescribeRegions API以外,其他所有请求的域名都是由带有指定Bucket信息的三级域名组成的。
访问域名结构为BucketName.Endpoint
。BucketName为您的存储空间名称,Endpoint为存储空间对应的地域域名。
Endpoint分为外网、内网以及传输加速Endpoint。以华东1(杭州)地域的访问域名为例,说明如下。
外网Endpoint
外网Endpoint可以直接使用,无需额外配置。
oss-cn-hangzhou.aliyuncs.com
内网Endpoint
内网Endpoint可以直接使用,无需额外配置。
oss-cn-hangzhou-internal.aliyuncs.com
传输加速Endpoint
传输加速Endpoint又分为全球加速Endpoint以及非中国内地加速Endpoint。
传输加速全球加速Endpoint
oss-accelerate.aliyuncs.com
传输加速非中国内地加速Endpoint
oss-accelerate-overseas.aliyuncs.com
通过外网访问OSS
外网指的是互联网。通过外网访问产生的流入流量(写)是免费的,流出流量(读)是收费的。
外网访问OSS有以下两种方式。
方式一:以URL的形式访问OSS Object
以URL形式访问OSS Object时,与Object的读写权限ACL有关。
Object ACL | 公共读或公共读写 | 私有 |
URL格式 |
|
|
参数说明 |
| 除签名信息以外,其他参数的用法与公共读或公共读写Object相同。签名信息包含标识URL超时时间的Expires、密钥中的AccessKey ID以及Signature三种元素。 有关在文件URL中添加签名的具体步骤,请参见在URL中包含签名。 |
使用示例 | 您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的Object,该Object保存在exampledir目录下,且允许匿名访问。此时,文件URL为 | 您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的私有Object,该Object保存在exampledir目录下。此时,文件URL为 |
方式二: 通过OSS SDK配置外网访问域名
OSS SDK会对您的每一个操作拼接访问域名。但您在对不同地域的Bucket进行操作的时候需要设置不同的Endpoint。
以Java SDK为例,对华东1(杭州)的Bucket进行操作时,需要在对类实例化时设置Endpoint。
import com.aliyun.oss.common.auth.*;
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String endpoint = "oss-cn-hangzhou.aliyuncs.com";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
通过内网访问OSS
内网指的是阿里云同地域产品之间的内部通信网络,例如您通过ECS云服务器访问同地域的OSS服务。内网产生的流入和流出流量均免费,但是请求次数仍会计费。
内网访问OSS有以下两种方式。
方式一:以URL的形式访问OSS Object
以URL形式访问OSS Object时,与Object的读写权限ACL有关。
Object ACL | 公共读或公共读写 | 私有 |
URL格式 |
|
|
参数说明 |
| 除签名信息以外,其他参数的用法与公共读或公共读写Object相同。签名信息包含标识URL超时时间的Expires、密钥中的AccessKey ID以及Signature三种元素。 有关在文件URL中添加签名的具体步骤,请参见在URL中包含签名。 |
使用示例 | 您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的Object,该Object保存在exampledir目录下,且允许匿名访问。此时,文件夹URL为 | 您在华东1(杭州)地域创建了名为examplebucket的存储空间,存储空间下有名为example.txt的私有Object,该Object保存在exampledir目录下。此时,文件URL为 |
方式二:通过ECS使用OSS SDK配置内网Endpoint
以Java SDK为例,对华东1(杭州)地域的Bucket进行操作时,需要将Endpoint设置为华东1(杭州)地域的内网Endpoint。
import com.aliyun.oss.common.auth.*;
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String endpoint = "oss-cn-hangzhou-internal.aliyuncs.com";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
同一个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=nz2p***********&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272Y********
。有关在文件URL中添加签名的具体步骤,请参见在URL中包含签名。
相关文档
访问不同的Region需要不同的Endpoint。关于Region和Endpoint对照表,请参见OSS地域和访问域名。
本文列举的Endpoint为IPv4域名。如果您需要通过IPv6协议访问OSS,您需要使用IPv6协议的Endpoint。详情请参见OSS访问域名使用规则。
云下机房设备或异地ECS实例希望通过内网访问OSS时,可通过CEN、高速通道、专线、VPN等连接OSS所在地域内网网络,并配置指向OSS内网网段的路由。详情请参见OSS内网域名与VIP网段对照表。
除了使用OSS提供的域名外,您可以为OSS访问域名绑定自定义域名,实现通过自定义域名访问OSS。例如,为存储空间绑定自定义域名
static.example.com
,然后通过该域名访问OSS。OSS访问域名需携带Object访问路径才可以被访问。如果仅使用访问域名,例如examplebucket.oss-cn-hangzhou.aliyuncs.com,会有报错提示。如果您希望通过OSS访问域名直接访问Object,可以通过配置静态网站托管来实现。