OSS访问域名
OSS域名构成规则
针对OSS的网络请求,除了GetService这个API以外,其他所有的请求的域名都是针对具体Bucket的三级域名。构成规则是由BucketName和Endpoint构成:BucketName.Endpoint。其中Endpoint根据Bucket所在Region(数据中心)的不同,内外网访问方式的不同会有所区分。
外网Endpoint规则
这里的外网指的是互联网。
Region + .aliyuncs.com
内网Endpoint规则
这里的内网指的是阿里云内网网络。
Region + -internal + .aliyuncs.com
OSS开通Region和Endpoint对照表
Region中文名称 | Region英文表示 | 外网Endpoint | ECS访问的内网Endpoint |
---|---|---|---|
杭州数据中心 | oss-cn-hangzhou | oss-cn-hangzhou.aliyuncs.com | oss-cn-hangzhou-internal.aliyuncs.com |
青岛数据中心 | oss-cn-qingdao | oss-cn-qingdao.aliyuncs.com | oss-cn-qingdao-internal.aliyuncs.com |
北京数据中心 | oss-cn-beijing | oss-cn-beijing.aliyuncs.com | oss-cn-beijing-internal.aliyuncs.com |
香港数据中心 | oss-cn-hongkong | oss-cn-hongkong.aliyuncs.com | oss-cn-hongkong-internal.aliyuncs.com |
深圳数据中心 | oss-cn-shenzhen | oss-cn-shenzhen.aliyuncs.com | oss-cn-shenzhen-internal.aliyuncs.com |
上海数据中心 | oss-cn-shanghai | oss-cn-shanghai.aliyuncs.com | oss-cn-shanghai-internal.aliyuncs.com |
美国硅谷数据中心 | oss-us-west-1 | oss-us-west-1.aliyuncs.com | oss-us-west-1-internal.aliyuncs.com |
亚太(新加坡)数据中心 | oss-ap-southeast-1 | oss-ap-southeast-1.aliyuncs.com | oss-ap-southeast-1-internal.aliyuncs.com |
更多请参考访问域名和数据中心
OSS SDK域名设置
OSS SDK中帮助用户对于每一个操作拼接了访问域名。但用户在对不同区域的Bucket进行操作的时候需要设置不同的Endpoint。
以Java SDK为例,准备对杭州节点的Bucket进行操作时需要在对类实例化时设置Endpoint:
String accessKeyId = "
在ECS中使用内网Endpoint访问OSS
在同一个Region的ECS和OSS之间可以通过内网地址来访问,否则无法通过内网访问。
例如用户购买了北京的ECS,其OSS有一个Bucket叫beijingres,Region为北京,那么可以使用 beijingres.oss-cn-beijing-internal.aliyuncs.com 去访问beijingres 的资源,该用户还有一个Bucket叫qingdaores, Region青岛,那么从北京的ECS用内网地址qingdaores.oss-cn-qingdao-internal.aliyuncs.com是无法访问OSS的,必须使用公网地址qingdaores.oss-cn-qingdao.aliyuncs.com。
上面JAVA SDK的例子中使用了该Bucket的公网地址进行访问,如果要通过内网地址进行访问,对Endpoint进行简单修改:
String accessKeyId = "<key>";
String accessKeySecret = "<secret>";
String endpoint = "http://oss-cn-hangzhou-internal.aliyuncs.com";
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);