开发者社区 问答 正文

OSS访问域名使用规则



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,Region和Endpoint对照表请参考 访问域名和数据中心

如何通过外网访问OSS服务


这里的外网指的是互联网。通过外网访问产生的流入流量(写)是免费的,流出流量(读)是收费的。详情请阅读 OSS服务价格页
外网访问OSS有如下两种方式:


  • [backcolor=transparent]访问方式1,在访问的时候以URL的形式来表示OSS的资源的。OSS的URL构成如下:
    1. [backcolor=transparent]   [backcolor=transparent] <Schema>[backcolor=transparent] ://[backcolor=transparent] <Bucket>[backcolor=transparent] .<外网Endpoint>/[backcolor=transparent] <Object>[backcolor=transparent] 三级域名访问方式
    2. [backcolor=transparent]  Schema:值为HTTP或者为HTTPS
    3. [backcolor=transparent]  Bucket:用户的OSS存储空间
    4. [backcolor=transparent]  Endpoint:用户的Bucket所在数据中心的访问域名,这里您需要填写外网Endpoint
    5. [backcolor=transparent]  Object:用户上传在OSS上的文件

    示例:如您在Region为华东1,Bucketname为abc,Object为myfile/aaa.txt,那么您的外网访问地址为:
    1. [backcolor=transparent]abc[backcolor=transparent].[backcolor=transparent]oss[backcolor=transparent]-[backcolor=transparent]cn[backcolor=transparent]-[backcolor=transparent]hangzhou[backcolor=transparent].[backcolor=transparent]aliyuncs[backcolor=transparent].[backcolor=transparent]com[backcolor=transparent]/[backcolor=transparent]myfile[backcolor=transparent]/[backcolor=transparent]aaa[backcolor=transparent].[backcolor=transparent]txt

    您还可以直接将Object的URL链接放入HTML中使用,如下所示:
    1. [backcolor=transparent]<img[backcolor=transparent] [backcolor=transparent]src[backcolor=transparent]=[backcolor=transparent]"https://abc.oss-cn-hangzhou.aliyuncs.com/mypng/aaa.png"[backcolor=transparent] [backcolor=transparent]/>

  • [backcolor=transparent]访问方式2: 通过OSS SDK配置外网访问域名。
    OSS SDK会帮助用户对每一个操作拼接访问域名。但用户在对不同区域的Bucket进行操作的时候需要设置不同的Endpoint。
    以Java SDK为例,准备对华东1节点的Bucket进行操作时,需要在对类实例化时设置Endpoint:
    1. [backcolor=transparent]   [backcolor=transparent] String[backcolor=transparent] accessKeyId [backcolor=transparent] =[backcolor=transparent] [backcolor=transparent] "<key>"[backcolor=transparent] ;
    2. [backcolor=transparent]  [backcolor=transparent]String[backcolor=transparent] accessKeySecret [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"<secret>"[backcolor=transparent];
    3. [backcolor=transparent]  [backcolor=transparent]String[backcolor=transparent] endpoint [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"oss-cn-hangzhou.aliyuncs.com"[backcolor=transparent];
    4. [backcolor=transparent]  [backcolor=transparent]OSSClient[backcolor=transparent] client [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]OSSClient[backcolor=transparent]([backcolor=transparent]endpoint[backcolor=transparent],[backcolor=transparent] accessKeyId[backcolor=transparent],[backcolor=transparent] accessKeySecret[backcolor=transparent]);


如何通过内网访问OSS服务


这里的内网指的是阿里云产品之间的内网通信网络,例如您通过ECS云服务器访问OSS服务、或阿里云CDN可以配置OSS内网访问域名进行回源。内网产生的流入流出流量均是免费的。详情请阅读 OSS服务价格页
内网访问OSS有如下两种方式:

  • [backcolor=transparent]访问方式1,在访问的时候以URL的形式来表示OSS的资源的。OSS的URL构成如下:
    1. [backcolor=transparent]   [backcolor=transparent] <Schema>[backcolor=transparent] ://[backcolor=transparent] <Bucket>[backcolor=transparent] .<内网Endpoint>/[backcolor=transparent] <Object>[backcolor=transparent] 三级域名访问方式
    2. [backcolor=transparent]  Schema:值为HTTP或者为HTTPS
    3. [backcolor=transparent]  Bucket:用户的OSS存储空间
    4. [backcolor=transparent]  Endpoint:用户的Bucket所在数据中心的访问域名,这里您需要填写内网Endpoint。
    5. [backcolor=transparent]  Object:用户上传在OSS上的文件

    示例:如您在Region为华东1,Bucketname为abc ,Object为myfile/aaa.txt,那么您的外网访问地址为:
    1. [backcolor=transparent]  abc[backcolor=transparent].[backcolor=transparent]oss[backcolor=transparent]-[backcolor=transparent]cn[backcolor=transparent]-[backcolor=transparent]hangzhou[backcolor=transparent]-[backcolor=transparent]internal[backcolor=transparent].[backcolor=transparent]aliyuncs[backcolor=transparent].[backcolor=transparent]com[backcolor=transparent]/[backcolor=transparent]myfile[backcolor=transparent]/[backcolor=transparent]aaa[backcolor=transparent].[backcolor=transparent]txt

  • [backcolor=transparent]访问方式2,通过ECS使用OSS SDK配置内网访问域名。
    例如在ECS云服务器上的JAVA SDK的例子中配置内网Endpoint进行简单修改:
    1. [backcolor=transparent]   [backcolor=transparent] String[backcolor=transparent] accessKeyId [backcolor=transparent] =[backcolor=transparent] [backcolor=transparent] "<key>"[backcolor=transparent] ;
    2. [backcolor=transparent]  [backcolor=transparent]String[backcolor=transparent] accessKeySecret [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"<secret>"[backcolor=transparent];
    3. [backcolor=transparent]  [backcolor=transparent]String[backcolor=transparent] endpoint [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]"oss-cn-hangzhou-internal.aliyuncs.com"[backcolor=transparent];
    4. [backcolor=transparent]  [backcolor=transparent]OSSClient[backcolor=transparent] client [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]OSSClient[backcolor=transparent]([backcolor=transparent]endpoint[backcolor=transparent],[backcolor=transparent] accessKeyId[backcolor=transparent],[backcolor=transparent] accessKeySecret[backcolor=transparent]);

    [backcolor=transparent]注意:在同一个Region的ECS和OSS之间内网是互通的,不同Region的ECS和OSS之间内网不互通。

    例如您购买了华北2(cn-beijing)的ECS,其OSS有两个Bucket:

  • 其中一个Bucket叫beijingres,Region为华北2,那么在华北2的ecs中可以使用 beijingres.oss-cn-beijing-internal.aliyuncs.com 去访问 beijingres 的资源。

  • 另外一个Bucket叫qingdaores,Region为华北1,那么在华北2的ECS用内网地址qingdaores.oss-cn-qingdao-internal.aliyuncs.com是无法访问OSS的,必须使用外网地址qingdaores.oss-cn-qingdao.aliyuncs.com。

展开
收起
青衫无名 2017-10-17 15:10:55 2368 分享 版权
0 条回答
写回答
取消 提交回答