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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
.cn 域名,1个 12个月
简介: 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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
1月前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
1月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
60 3
|
1月前
|
前端开发 JavaScript
探索现代Web应用的微前端架构
【10月更文挑战第40天】在数字时代的浪潮中,Web应用的发展日益复杂多变。微前端架构作为一种新兴的设计理念,正逐步改变着传统的单一前端开发模式。本文将深入探讨微前端的核心概念、实现原理及其在实际项目中的应用,同时通过一个简单的代码示例,揭示如何将一个庞大的前端工程拆分成小而美的模块,进而提升项目的可维护性、可扩展性和开发效率。
|
5天前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
14天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
38 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
5天前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
24天前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
30 6
|
27天前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
31 5
|
4天前
|
存储 监控 自动驾驶
对象存储OSS产品介绍
本次分享由王太平(征越)主讲,围绕阿里云对象存储OSS的产品介绍、成本优化、功能实战及最佳实践展开。内容涵盖OSS的五种存储类型及其应用场景,详细解析了生命周期管理在数据存储成本优化中的重要作用,并提供了具体的配置建议和实际案例。适合希望深入了解OSS及优化存储成本的用户参考。
|
1月前
|
机器学习/深度学习 人工智能 JavaScript
JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景
本文探讨了JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景。JavaScript将注重性能优化、跨平台开发、AI融合及WebAssembly整合;TypeScript则强调与框架整合、强类型检查、前端工程化及WebAssembly的深度结合。两者结合发展,特别是在Vue 3.0中完全采用TypeScript编写,预示着未来的Web开发将更加高效、可靠。
42 4