【修真院java小课堂】简单介绍在项目中调用第三方OSS服务
大家好,我是IT修真院北京分院第34期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务6中问题,为什么要使用MEMCACHE?MEMCACHE有什么作用?
一、背景介绍
图片上传的需求
我们在程序和项目开发过程中,不论是做web端还是APP,都会有图片上传的业务需求, 最典型的就是注册账号之后需要用户上传头像。
任务七中实现图片上传,主要使用jsp页面表单提交方式提交图片,controller接收实现图片上传,使用mutilpartfile来完成。 存储基本有两种形式,在数据库中直接存储blob类型的图片或者图片存储在服务器上并在数据库中存储访问的路径, 前端页面使用的时候直接引用链接。另一种是存在第三方Oss服务器,如阿里云oss和七牛oss等等,信息数据库只储存访问资源的链接。
什么是OSS?
OSS 对象存储(Object Storage Service,简称OSS),传统的物理存储 ----- 对象存储(云产品),云存储服务,具有海量、安全、高可用性、低成本的特性;按量缴费即可支持Restful API,弹性扩展、按需分配、只要用来存储图片、视频、文件等非结构化数据;支持任何类型的文件存储。
2.知识剖析
为什么使用第三方OSS而不是自建服务器?
自建服务器缺点:1、自建服务器可用性低;2、需自行研发备份策略,为达到同步可靠性需增加更多备份服务器成本;
3、自行部署,价格高昂;4、单线或双线接入速度慢,有带宽限制,峰值时期需人工扩容;
5、服务器存储受硬盘容量限制,需人工扩容;6、需招聘专职运维人员,花费大量人力成本;7、需硬件采购、机房托管、部署机器等工作,周期较长;
什么是api?
API (Application Programming Interface)翻译成中文就是"应用程式接口",软件系统不同组成部分衔接的约定。 操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API 而使操作系统去执行应用程序的命令(动作)。 在同一个平台下的两个不同东西(程式 or 系统)沟通的桥梁。
API可以说是 "软件",是一个规范,或者说一个功能的调用/使用方式.
什么是sdk?
SDK (Software Development Kit)中文是"软体开发工具组",用来帮一个 产品、平台开发应用程式的工具组, 由产品的厂商提供给开发者使用的。辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。
SDK与API的联系在于,实际上SDK包含了API的定义,API定义一种能力,一种接口的规范。而SDK可以包含这种能力,包含这种规范。我们常常说,这个SDK具有某某些API可以用。
阿里云OSS服务
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以通过调用 API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过 Web 控制台对数据进行简单的管理。OSS 适合存放任意类型的文件,适合各种网站、开发企业及开发者使用。按实际容量付费真正使您专注于核心业务。
3.常见问题
1、防盗链介绍
2、客户端直传oss和服务器中转上传oss比较。
3、如何做到使用两个第三方Oss服务并做到无缝切换。
4.解决方案
1、防盗链介绍
首先是防止独有的资源被盗用,比如我有一个赛事的独家转播权,我肯定是希望所有人都来我的网站看直播,但是如果没有使用防盗链的话,别的网站就可以盗用我的链接放到自己的网站上,从而分流我的用户。再比如,有的大型图片网站,是将图片放到OSS服务器上储存的,如果出现了大量盗链,就会导致其OSS流量剧增,侵权不说还会使得成本剧增。
利用HTTP Referer。简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。
2、客户端直传oss和服务器中转上传oss比较。
1、流程上—少了一步转发。
2、架构上—走网站服务器,上传量过大的时候,瓶颈在网站服务器,采用表单上传后上传都是直接从客户端发送到oss,上传量过大时,压力在oss上,而不在网站服务器上
3、如何做到使用两个第三方Oss服务并做到无缝切换。
可以设计个通用接口,连个第三方Oss服务都是实现类。然后注册为xml文件中的bean。使用时可以直接在xml文件里修改调用。
阅读更多
- 【修真院Java小课堂】Tiles框架简单介绍
- Java WebService 简单实例、调用第三方提供的webService服务
- Java远程调用(二)实现一个简单的服务框架
- Axis2学习总结(2)-----通过wsdl2java工具调用第三方服务
- JAVA项目中发布WebService服务——简单实例
- 项目中需要利用webview调用写好的java后台网页,并利用网页端的第三方通联支付。
- JAVA项目中发布WebService服务—简单实例
- Java WebService 简单实例、调用第三方提供的WebService服务
- 跟我开始从0学Android--从0学java--java简单介绍开始第一个java项目
- JAVA项目中发布WebService服务—简单实例
- JAVA项目中发布WebService服务—简单实例
- Java的开源项目:简单介绍Log4J的使用
- JAVA项目中发布WebService服务——简单实例
- 介绍一个方便调用RESTful services的Java 开源项目Resty
- 简单介绍一下Spring / java中Spring框架7大核心模块的作用,如何在面试中侃侃而谈?/ Spring体系常用项目一览
- JAVA项目中公布WebService服务——简单实例
- JAVA项目中发布WebService服务—简单实例
- JAVA项目中发布WebService服务—简单实例
- Java实现的简单的WebService服务发布和Client调用例子
- Hessian学习之(一):简单测试 + C#调用Java服务