如何应用OSS的内网地址

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
对象存储 OSS,20GB 3个月
简介: OSS适用于存储各类型的静态资源,较多的用户将静态资源存储在OSS上。各网络环境下要如何应用OSS的内网地址、站点中如何内网应用OSS的资源、SDK如何内网应用OSS资源,本文对上述内容进行了说明;

一、各网络环境下如何应用OSS的内网地址

只有同区域的ECS才能内网链接OSS,跨账户的ECS与OSS也能内网互连。而ECS分为经典网络ECS及VPC网络ECS,经典网络ECS要内网链接OSS得调用OSS经典网络内网地址:bucketname. 内网Endpoint,内网endpoint格式一般为: region-internal.aliyuncs.com;VPC网络ECS要内网连接OSS得调用OSSVPC内网地址:bucketname. VPC网络Endpoint ,VPC网络endpoint格式一般为:vpc100 -region.aliyuncs.com;其中 region可以为oss-cn-hangzhou、oss-cn-beijing、oss-cn-shanghai、oss-cn-shenzhen等等; OSS不同区域不同网络环境(外网/VPC/经典网络)的endpoint不同,OSS开通Region和Endpoint对照表参考: OSS开通Region和Endpoint对照表

如何获取OSS的地址

1) 可以通过OSS开通Region和Endpoint对照表获取对应区域对应网络环境oss的endpoint,通过bucketname.endpoint 拼接得到;
2) 控制台获取bucket的地址;
阿里云控制台—OSS—选择具体bucket—概览中显示了bucket的地址
1

二、站点中如何内网应用OSS的资源

存在客户在站点页面中直接应用object的内网URL,如http://ali.oss-cn-hangzhou-internal.aliyuncs.com/1.jpg, 站点访问异常,由于客户的用户打开站点是在其本地PC上打开的,相当于本地PC直接请求了OSS的内网,而OSS的内网只能同区域的ECS才能内网访问,客户的用户本地PC如果为非ECS网络环境,那么网络就不可达,访问异常了的;如果客户要在站点中直接内网应用oss的资源

如何在站点中内网应用OSS资源

客户的站点必须部署在与OSS同区域的ECS上,实现方式参考如下
1) Web端发起请求到ECS,ECS解析请求,得到web 端要访问的object名称,及bucket名称,ECS集成OSS的SDK或者API,调用SDK或者API获取OSS的资源,返回给web端;
OSS SDK参考: OSS SDK
API操作参考:OSS API操作

2) Web端发起请求站点某个目录下的URL,该站点目录设置反向代理,代理到OSS内网;
站点服务器ECS接收到请求,内网请求OSS资源,返回数据给Web端;
反向代理配置:站点域名绑定bucket,但不需要cname 解析到bucket的公网地址上;
站点某个目录配置反向代理配置,代理到OSS的内网地址上
Nginx反向代理配置类似如下

server {
listen       80 ; #default_server;
server_name  www.a.com;
location / {
root /alidata/www/ www-a-com/;
proxy_pass http://aialiyun.oss-cn-hangzhou-internal.aliyuncs.com/; 
}
}

Bucket绑定域名看: 自定义域名绑定

三、SDK如何内网应用OSS的资源

SDK初始化client的时候,endpoint传入oss内网地址即可,oss内网地址获取看《各网络环境下如何应用OSS的内网地址》

1)Java

String endpoint = "http://oss-cn-hangzhou-internal.aliyuncs.com";
// 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 创建OSSClient实例
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);

参考: Javasdk 初始化client

2)PHP

$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou-internal.aliyuncs.com>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
} catch (OssException $e) {
    print $e->getMessage();
}

参考:PHP SDK初始化client

3)Python

auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
endpoint = 'http://oss-cn-hangzhou-internal.aliyuncs.com' # 假设Bucket处于杭州区域
bucket = oss2.Bucket(auth, endpoint, '您的Bucket名')
参考: https://help.aliyun.com/document_detail/32028.html?spm=5176.doc32027.6.680.9xhved
##**4)Net sdk**
const string accessKeyId = "<your AccessKeyId>";
const string accessKeySecret = "<your AccessKeySecret>";
const string endpoint = "http://oss-cn-hangzhou-internal.aliyuncs.com";
var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);

参考: Python SDK初始化client

5)C

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

参考: C SDK初始化client

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
2月前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之生成的图片的oss地址配成自定义的域名如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
|
2天前
|
前端开发 对象存储
oss的断点续传在react中的应用
使用阿里云OSS的`multipartUpload`可自动管理文件切片与断点续传吗?测试时,上传一半中断(如刷新页面或重启浏览器),再续应从断点处继续。
58 10
|
24天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
|
26天前
|
监控 Serverless 持续交付
阿里云云效产品使用问题之如何让流水线支持构建 flutter web 应用到 OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56538 7
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
1月前
|
运维 Java Serverless
Serverless 应用引擎产品使用合集之是否提供工具来给OSS配置HTTPS证书
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
存储 运维 Serverless
Serverless 应用引擎产品使用合集之如何访问相同地域的OSS
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
27天前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之内网是否可以调用oss
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
1月前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI产品使用合集之在easy_rec中,将model_dir设置为oss地址时,oss相关配置需要加载在环境中,有完整的示例吗
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
2月前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。