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

本文涉及的产品
对象存储 OSS,20GB 3个月
.cn 域名,1个 12个月
对象存储 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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
3天前
|
人工智能 自然语言处理 搜索推荐
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
人工智能(AI)、Web 3.0和元宇宙作为当前科技领域的热门话题,它们之间存在着紧密的联系,并在各自领域内展现出广泛的应用和未来的发展趋势。以下是对这三者联系、应用及未来发展趋势的详细分析
11 2
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
|
1天前
|
缓存 前端开发 JavaScript
高效开发现代 Web 应用:从前端到后端的最佳实践
在开发现代 Web 应用时,前端和后端技术的选择对项目的性能、可维护性和用户体验至关重要。本文将探讨如何通过现代工具和框架来优化前端和后端开发流程。我们将分析前端技术(如 React 和 Vue.js)与后端技术(如 Node.js 和 Django)的集成,并提供实际案例来展示如何实现高效开发。无论是对新手还是经验丰富的开发者,本指南都提供了宝贵的洞见和实用的技巧,以帮助提高开发效率并构建出色的 Web 应用。
|
7天前
|
监控 安全 前端开发
使用PHP进行Web开发的最佳实践
【8月更文挑战第13天】使用PHP进行Web开发时,遵循最佳实践可以显著提高项目的质量和可维护性。从使用现代PHP版本、遵循PSR标准到编写安全的代码、采用MVC架构模式等各个方面入手,不断提升你的开发能力和项目质量。
|
4天前
|
人工智能 前端开发 开发工具
NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践
.NET技术自2000年推出以来,在软件开发领域扮演着关键角色。本文从核心优势出发,探讨其统一多语言平台、强大工具集、跨平台能力及丰富生态系统的价值;随后介绍.NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践;最后分析性能优化、容器化、AI集成等方面的挑战与机遇,展望.NET技术的未来发展与潜力。
13 2
|
11天前
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
34 3
|
12天前
|
缓存 监控 前端开发
构建高性能Web应用的最佳实践
【8月更文挑战第8天】构建高性能的Web应用需要综合考虑多个方面,包括选择合适的技术栈、优化后端和前端性能、以及进行性能测试和监控。通过遵循这些最佳实践,开发者可以构建出高效、可扩展且用户友好的Web应用,提升用户体验和业务价值。
|
16天前
|
监控 物联网 数据挖掘
PHP不仅在Web开发领域有着广泛的应用,其在服务器端的应用也非常重要
【8月更文挑战第4天】PHP不仅在Web开发领域有着广泛的应用,其在服务器端的应用也非常重要
32 8
|
20天前
|
存储 JSON 自然语言处理
OSS数据源一站式RAG最佳实践
本文介绍了如何使用OpenSearch LLM智能问答版通过OSS数据源一站式构建RAG系统。
6978 11
|
23小时前
|
前端开发 测试技术 定位技术
Web Accessibility基础:构建无障碍的前端应用
网络无障碍确保所有人平等访问网站与应用,覆盖视觉、听觉等多种障碍。关键技术包括:文本替代(alt属性)、ARIA角色、清晰表单标签、键盘导航、颜色对比、视觉隐藏、ARIA live区域、触控优化、语义化编码、视觉反馈、语音支持、易读文本、状态指示、色盲友好、屏幕阅读器兼容、响应式设计、媒体内容字幕、定期测试、图像地图、语音合成、明确错误提示及焦点管理。
4 0
|
1天前
|
存储 Java 关系型数据库
实时计算 Flink版产品使用问题之以jar包方式同步数据是否需要定义存储oss的位置
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

热门文章

最新文章