发表于: 2020-08-12 22:49:03
1 2493
今天完成的事情:深度思考完成。
明天计划的事情:
遇到的问题:
收获:
2. 如何调用第三方API实现图片上传?
目前学习到一种利用SpringMVC使用MultipartFile实现文件上传
(1)使用MultipartFile类接收上传的图片;
(2)将图片存储在服务器(阿里云OSS),返回一个图片路径;
(3)图片路径存储在用户信息中以供调HTML中form mata方式上传的文件用。
3.怎么用Python写一个图片迁移脚本?
https://www.zhihu.com/search?type=content&q=python%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB
使用python实现数据从七牛云到阿里云的自动迁移
4.第三方的服务可靠吗,如果出现错误该怎么处理?
https://www.cnblogs.com/lbser/p/4753112.html
https://blog.csdn.net/doctor_who2004/article/details/75208985
第三方的是绝对不可靠的。
首先做最坏的打算,如果第三方挂掉,要做好准备,业务降级方案考虑一下。比如我们做个性化推荐服务时,需要从用户中心获取用户的个性化数据,以便代入到模型里进行打分排序,但如果用户中心服务挂掉,我们获取不到数据了,那么就不推荐了?显然不行,我们可以在cache里放置一份热门商品以便兜底。
其次就是遵循快速失败原则,设置超时时间,如果某个第三方的请求时间太久,会阻塞后面的请求,大量请求的话,会影响到服务性能。所以要和第三方定一个比如200ms响应时间。
最后出现异常的情况,可能是系统异常和操作异常,授权异常等。
5.怎么快速集成第三方服务组件,API和SDK的区别是什么?
集成第三方组件,根据自己需要的功能,结合第三方服务的帮助文档的内容,找到需要的传参,和响应,调用第三方的API,或者SDK。
API和SDK的区别
API即应用编程接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。
SDK软件开发工具包,软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
为了便于理解,我们就再举个不完全恰当的例子。你想吃面包,而你家对街有一家面包店卖面包和烤面包机。API方式是你经过马路去这家面包店买了一个面包。API就是买面包。而SDK方式是,你向面包店买了一个烤面包机,在自己家里安装好,然后烤了一个面包。SDK是这个面包机和配料。
选择API
优势:API开发成本低,对接比较简单,可以快速验证商业模式和用户体验。
劣势:API会经过对接平台,厂商可以获取对接平台相关数据信息。
选择SDK
优势:SDK对接后的功能比较稳定,响应速度快,而且对接平台相关数据不会被获取。
劣势:需要开发的环节较多,开发工作量大,对接周期略长。
6.上传图片应该由前端或客户端直接上传到第三方存储服务,还是应该先上传到服务器,再由服务器上传到第三方?
前者对服务器的压力较少,对于大量的图片数据,可以采用这种方式,但是直接从前端传,安全方面可靠性方面得不到保证,先上传服务器,可以对图片进行异常捕获,更加安全,但是会加大服务器压力。
7.怎么实现图片防盗链,缩略图,水印等功能?
缩略图和水印同理
阿里云中对图片处理的方式之一就有缩略图,其他还有效果,裁剪,缩放,水印等,所有的操作都会以参数形式加在图片的URL之后。
原图的URL
https://ones-y.oss-cn-hangzhou.aliyuncs.com/%E9%82%93%E4%BC%A62.jpg
处理后的就是
https://ones-y.oss-cn-hangzhou.aliyuncs.com/%E9%82%93%E4%BC%A62.jpg?x-oss-process=image/resize,m_fill,h_100,w_100
就是用x-oss-process赋参数在后面,image是存储空间,resize是图片缩放的参数名称,后面就是具体的参数
m:缩放的模式。
- lfit:等比缩放,限制在指定w与h的矩形内的最大图片。
- mfit:等比缩放,延伸出指定w与h的矩形框外的最小图片。
- fill:固定宽高,将延伸出指定w与h的矩形框外的最小图片进行居中裁剪。
- pad:固定宽高,缩放填充。
- fixed:固定宽高,强制缩放。
w:宽度 h:高度 l:最长边 s:最短边
按比例缩放 p: 倍数百分比。小于100为缩小,大于100为放大。取值范围1-1000
下面网址是API文档的代码说明
防盗链
防盗链功能通过设置Referer白名单,限制仅白名单中的域名可以访问您Bucket内的资源。OSS支持基于HTTP和HTTPS header中表头字段Referer的方法设置防盗链。
仅当通过签名URL或者匿名访问Object时,进行防盗链验证;当请求的Header中包含Authorization字段,不进行防盗链验证。
8.为什么要使用第三方图片存储服务,好处是什么?
第三方存储能保证安全、低成本、高可靠的云存储服务
对比项 | 第三方存储 | 自建服务器存储 |
---|---|---|
可靠性 | 多重冗余架构设计,为数据持久存储提供可靠保障。同时,基于高可用架构设计,消除单节故障,确保数据业务的持续性。
|
|
安全 |
|
|
成本 |
|
|
智能存储 | 提供多种数据处理能力,如图片处理、视频截帧、文档预览、图片场景识别、人脸识别、SQL就地查询等,并无缝对接Hadoop生态、以及函数计算、EMR、DataLakeAnalytics、BatchCompute、MaxCompute、DBS等产品,满足企业数据分析与管理的需求。 | 需要额外采购,单独部署。 |
9.怎么样将短信发送服务抽像成公共代码,可以在多个项目中复用?
将共用的部分抽成工具类,或者做成单独的 module 供其他 module 调用
10.点对点短信和群发短信的通道区别是什么,怎么支持多种短信通道?
这个说的是考虑发送单条短信和多条短信吧。阿里云有支持这两种的调用。区别是传输过程中使用的网络协议不同。
评论