【OSS最佳实践】WEB站点中如何应用OSS产品

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: OSS提供了海量、安全、低成本、高可靠的云存储服务,用户可以通过SDK、API、OSS相关工具等在WEB端应用集成OSS。OSS的优势在于:OSS服务器性能较好,OSS单个bucket存储空间大小不限制,OSS单个bucket出入带宽限制5Gb以上(故大部分情况下,上传下载速度是取决于客户端的带宽)。

WEB站点应用OSS分为:源静态资源上传至OSS、WEB端集成OSS实现资源上传、WEB端应用OSS资源;

1. 源数据上传至OSS

将WEB站点中的静态资源上传至OSS,上传资源可以通过SDK、API或者相关工具进行上传;
1) SDK/API 上传方式(需要代码基础):在web 服务器上调用sdk 或者api 读取站点目录下的静态资源,一个个调用putobject接口进行上传资源。
2) OSSimport迁移(推荐):在站点服务器上部署OSSimport工具进行迁移数据,OSSimport支持增量数据迁移,并且配置简单方便,但是需要JAVA环境;
3)OSSfs: 安装OSSfs,挂载待上传的bucket,通过命令cp 资源到bucket中,缺陷为OSSfs挂载bucket的稳定性需要客户自己保障,并且OSSfs挂载bucket的性能由于走的是http协议,性能相对不理想;
4) 第三方工具:客户也可以在云市场上寻找一些第三方工具进行数据迁移至OSS;

参考链接如下:
SDK:SDK
API: API
OSSimport配置文件说明:OSSimport配置
OSSimport安装看:OSSimport安装
OSSfs: OSSfs

2.WEB端集成OSS,实现资源上传

WEB集成OSS实现资源上传,可以通过如下几种方式进行:WEB端集成OSS SDK/API实现资源直传至OSS、WEB端上传资源至服务器端,服务器端集成OSS SDK上传资源至OSS、通过OSSftp工具上传资源至OSS等;

1) WEB端集成OSS的SDK(推荐)

WEB端集成OSS的SDK实现资源直传至OSS,并且服务器端联动更新站点的应用内容。WEB端可以集成OSSWEB直传回调demo、JS SDK、自己实现JS API封装来实现直传资源至OSS;

I) OSS WEB直传回调demo(推荐)

改造Web 站点上传资源部分的代码,集成web直传回调demo,web端直传资源至OSS,OSS接到对应的上传请求,存储数据,并且将文件相关的信息回调给web 服务器,web 服务器记录相关的文件信息(可以是数据库记录对应上传的uid,bucketname,objectname,endpoint等信息)联动更新web 站点,显示对应object的链接;web 直传回调的业务逻辑示例如下:
1

缺陷:采用post 请求上传资源,目前没有分块上传的demo,得客户自己二次开发实现下;

II) JS SDK

改造Web 站点上传资源部分的代码,集成OSS JS SDK,通过JS SDK上传资源至OSS;业务逻辑可以为:客户端发起上传请求,web 端请求web 服务器获取得到对应的临时ak,sk,token/子账户的ak,sk ,进行初始化client,调用put object接口进行上传资源;

缺陷:如果调用子账户或者主账户ak,sk进行初始化client,账户很可能会存在安全风险;并且目前js sdk 不支持回调,这样的方式不能很好的实现业务服务器联动;

III) JS API封装

改造Web 站点上传资源部分的代码,通过JS封装OSS上传object的API接口实现资源直传至OSS,封装api 构造上传object的请求,需要获取签名,获取签名可以请求业务服务器端获取,保证access key id安全性;同时JS 封装API可以实现下回调逻辑,将上传资源的相关信息回调给业务服务器,业务服务器实现相关联动;

缺陷:需要一定开发基础,并且有一定开发工作量

2) 服务器端集成OSSSDK

原有的Web端上传逻辑不变,上传资源至服务器端,但服务器端增加上传逻辑,调用OSSSDK上传对应的资源至OSS。
缺陷:上传通过Web服务器中转,消耗了服务器的性能及带宽,并未充分利用OSS的优势,服务器端的性能及带宽瓶颈会成功业务瓶颈;

3) OSSftp实现资源上传至OSS

在一台有公网的服务器上部署OSSftpserver,测试通过使用FileZilla客户端去连接FTP server成功后,对应的站点参考OSSftp文档进行FTP配置,实现资源上传至OSS。
缺陷:OSSftp目前仅支持Discuz论坛、phpwind论坛、Wordpress等个人网站的应用,业务量较大的站点不推荐使用该方式集成;

参考链接如下:
OSSftp安装部署
Discuz配置
phpwind论坛配置
Wordpress配置

3. WEB端应用OSS资源

Web端应用OSS资源可以通过如下几种方式进行:Web应用的静态资源url链接直接替换为OSS object的url链接、Web端的页面引用的链接不进行任何改造,通过反向代理配置,静态资源请求定位到OSS上、Web端的页面引用不进行任何改造,直接ossfs挂载使用OSS资源等;

1) 直接应用objecturl链接

客户可以将站点中的全部静态资源链接替换为OSS中对应object的url链接。

I) 为bucket绑定自定义域名并且开启cdn加速(可选,但是推荐),参考:cdn加速oss

II) 更新WEB站点中静态资源的URL链接
将WEB站点中的静态资源url链接全部替换为OSS object的URL链接;OSSobjecturl链接获取:object公共读,那么直接通过bucket域名/objectname 即可拼接得到url;object私有,那么客户的web 站点得集成OSS的SDK或者API动态更新对应资源的url链接:签名URL获取

缺陷:OSS目前还不支持安全防护功能,如果存在恶意客户刷取客户静态资源,可能会产生大流量费用,但是OSS结合阿里云安全产品可以进行安全防护,详细看OSS异常流量排查及防护

2) WEB端反向代理应用OSS资源

客户可以将站点中静态资源对应的域名绑定bucket,将对应的静态资源目录反向代理到OSS上,访问oss的资源;

I) 为bucket绑定静态资源域名,静态域名仍然解析至站点服务器端,bucket绑定域名

II) 在web 站点服务器上进行反向代理配置,将静态目录反向代理到oss上,应用OSS资源,如果对应的web 站点服务器是ECS,并且与OSS同区域,那么反向代理的OSS域名可以是内网域名。

缺陷:Web端访问静态资源的速度及并发数限制取决于代理服务器的性能、带宽及nginx服务器的并发数限制;该配置用户可以在代理服务器上做相关的安全策略,可以规避一定的恶意客户刷流量行为。

3) WEB服务器通过OSSfs挂载应用OSS资源(不推荐)

客户Web端不做任何的改造,Web服务器直接通过ossfs挂载bucket,Web访问的资源直接访问挂载目录的资源;

缺陷:ossfs挂载资源性能相对较差,并且ossfs 挂载bucket的稳定性客户得业务端设置对应的监控保证挂载正常,故不推荐使用。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
16天前
|
敏捷开发 测试技术 持续交付
云效产品使用常见问题之账号授权就能对当前主账号下所有 OSS 进行读写权限如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5天前
|
SQL Java
20:基于EL与JSTL的产品管理页-Java Web
20:基于EL与JSTL的产品管理页-Java Web
19 5
|
8天前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
7天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在DataWorks中,查看ODPS表的OSS对象如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
23 1
|
7天前
|
分布式计算 DataWorks 数据处理
DataWorks产品使用合集之在DataWorks中管理MaxCompute模块的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
20 0
|
7天前
|
DataWorks 对象存储 分布式计算
DataWorks产品使用合集之DataWorks在将数据写入OSS时,会将所有的字符串类型的字段进行trim操作如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
25 1
|
7天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之在DataWorks中,同步OSS中的数据的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
18 0
|
8天前
|
分布式计算 Java 大数据
MaxCompute产品使用合集之大数据计算MaxCompute外部表映射了oss中的csv文件,看到"\N"被解析为"N",是什么原因
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
9天前
|
存储 Serverless 网络安全
Serverless 应用引擎产品使用之阿里云函数计算中的Web云函数可以抵抗网站对DDoS攻击如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
17 0
|
9天前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
19 1