全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

ECS用户如何正确使用OSS内网地址?

更新时间:2017-09-18 14:46:01

如果您所购买的ECS实例与OSS Bucket所在地域相同,那么您的ECS可以通过内网的方式访问OSS,不收取流量费用。访问是否走内网是根据您设置的域名来确定的。使用了内网域名访问数据会走内网通道,如果没有使用内网域名,那么会走公共通道。

说明:

  • 同区域的ECS可以通过内网访问OSS。
  • 跨账户的ECS和OSS可以内网互连。
  • 不同区域的ECS与OSS无法通过内网访问。

内网地址组成

  • 经典网络ECS:BucketName.region-internal.aliyuncs.com

  • VPC网络ECS:BucketName.vpc100-regin.aliyuncs.com

举例说明:

  • 华东2 经典网络ECS:aliyun-abc.oss-cn-shanghai-internal.aliyuncs.com

  • 华北2 VPC网络ECS:aliyun-abc.vpc100-oss-cn-beijing.aliyuncs.com

Region请参考:访问域名和数据中心

通过控制台快速获得Bucket对应内网地址

阿里云OSS管理控制台选择具体Bucket打开Bucket概览页面,在访问域名区域显示Bucket地址,如下图所示。

域名

网站如何通过内网使用OSS资源

常见问题:如果网站部署在ECS上,直接在网站页面中嵌入Object的内网url,例如http://ali.oss-cn-hangzhou-internal.aliyuncs.com/1.jpg 提供给网站客户访问。客户在本地PC端即外网环境下通过网页直接访问OSS内网地址,无法获取到Object。

同区域ECS上的网站如果内网调用OSS资源,需要将网页页面的访问链接设置为ECS的资源,ECS通过内网获取到OSS资源后提供给客户访问。获取方式:API/SDK或者反向代理。在客户访问量大的情况下ECS的带宽可能会成为瓶颈。

SDK/API如何通过内网使用OSS

SDK初始化client的时候,endpoint传入OSS内网对应的Endpoint即可,请参考:访问域名和数据中心

Java

  1. String endpoint = "http://oss-cn-hangzhou-internal.aliyuncs.com";//以华东 1为例
  2. String accessKeyId = "<yourAccessKeyId>";
  3. String accessKeySecret = "<yourAccessKeySecret>";
  4. OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);

更多详情请参考:Java SDK

PHP

  1. $accessKeyId = "<您从OSS获得的AccessKeyId>";
  2. $accessKeySecret = "<您从OSS获得的AccessKeySecret>";
  3. $endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou-internal.aliyuncs.com>";

更多详情请参考:PHP SDK

Python

  1. auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
  2. endpoint = 'http://oss-cn-hangzhou-internal.aliyuncs.com' # 假设Bucket处于杭州区域
  3. bucket = oss2.Bucket(auth, endpoint, '您的Bucket名')

更多详情请参考:Python SDK

.Net

  1. const string accessKeyId = "<your AccessKeyId>";
  2. const string accessKeySecret = "<your AccessKeySecret>";
  3. const string endpoint = "http://oss-cn-hangzhou-internal.aliyuncs.com";
  4. var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);

更多详情请参考:.NET SDK

C

  1. ptions->config = oss_config_create(options->pool);
  2. aos_str_set(&options->config->endpoint, "http://oss-cn-hangzhou-internal.aliyuncs.com");
  3. aos_str_set(&options->config->access_key_id, "<您的AccessKeyId>");
  4. aos_str_set(&options->config->access_key_secret, "<您的AccessKeySecret>");
  5. options->config->is_cname = 0;
  6. options->ctl = aos_http_controller_create(options->pool, 0);

更多详情请参考:C SDK

本文导读目录