天天看点

OSS访问域名使用规则

针对oss的网络请求,除了getservice这个api以外,其他所有请求的域名都是带有指定bucket信息的三级域名组成的。

访问域名规则:bucketname.endpoint。其中endpoint表示oss对外服务的访问域名。oss以http restful api的形式对外提供服务,当访问不同的region的时候,需要不同的访问域名。endpoint分内网和外网访问域名。

例如: 华东1 region的外网endpoint是oss-cn-hangzhou.aliyuncs.com,内网endpoint是oss-cn-hangzhou-internal.aliyuncs.com     

外网访问oss有如下两种方式:

访问方式1,在访问的时候以url的形式来表示oss的资源的。oss的url构成如下:

<code>&lt;schema&gt;://&lt;bucket&gt;.&lt;外网endpoint&gt;/&lt;object&gt; 三级域名访问方式</code>

<code>schema:值为http或者为https</code>

<code>bucket:用户的oss存储空间</code>

<code>endpoint:用户的bucket所在数据中心的访问域名,这里您需要填写外网endpoint</code>

<code>object:用户上传在oss上的文件</code>

示例:如您在region为华东1,bucketname为abc,object为myfile/aaa.txt,那么您的外网访问地址为:

<code>abc.oss-cn-hangzhou.aliyuncs.com/myfile/aaa.txt</code>

您还可以直接将object的url链接放入html中使用,如下所示:

<code>&lt;img src="https://abc.oss-cn-hangzhou.aliyuncs.com/mypng/aaa.png" /&gt;</code>

访问方式2: 通过oss sdk配置外网访问域名。

oss sdk会帮助用户对每一个操作拼接访问域名。但用户在对不同区域的bucket进行操作的时候需要设置不同的endpoint。

以java sdk为例,准备对华东1节点的bucket进行操作时,需要在对类实例化时设置endpoint:

<code>string accesskeyid = "&lt;key&gt;";</code>

<code>string accesskeysecret = "&lt;secret&gt;";</code>

<code>string endpoint = "oss-cn-hangzhou.aliyuncs.com";</code>

<code>ossclient client = new ossclient(endpoint, accesskeyid, accesskeysecret);</code>

内网访问oss有如下两种方式:

<code>&lt;schema&gt;://&lt;bucket&gt;.&lt;内网endpoint&gt;/&lt;object&gt; 三级域名访问方式</code>

<code>endpoint:用户的bucket所在数据中心的访问域名,这里您需要填写内网endpoint。</code>

示例:如您在region为华东1,bucketname为abc ,object为myfile/aaa.txt,那么您的外网访问地址为:

<code>abc.oss-cn-hangzhou-internal.aliyuncs.com/myfile/aaa.txt</code>

访问方式2,通过ecs使用oss sdk配置内网访问域名。

例如在ecs云服务器上的java sdk的例子中配置内网endpoint进行简单修改:

<code>string endpoint = "oss-cn-hangzhou-internal.aliyuncs.com";</code>

注意:在同一个region的ecs和oss之间内网是互通的,不同region的ecs和oss之间内网不互通。

例如您购买了华北2(cn-beijing)的ecs,其oss有两个bucket:

其中一个bucket叫beijingres,region为华北2,那么在华北2的ecs中可以使用 <code>beijingres.oss-cn-beijing-internal.aliyuncs.com</code> 去访问 beijingres 的资源。

另外一个bucket叫qingdaores,region为华北1,那么在华北2的ecs用内网地址<code>qingdaores.oss-cn-qingdao-internal.aliyuncs.com</code>是无法访问oss的,必须使用外网地址<code>qingdaores.oss-cn-qingdao.aliyuncs.com</code>。