发表于: 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.怎么实现图片防盗链,缩略图,水印等功能?

缩略图和水印同理

https://help.aliyun.com/document_detail/44688.html?spm=a2c4g.11186623.2.15.544e3bc2IS7KEs#concept-hxj-c4n-vdb

阿里云中对图片处理的方式之一就有缩略图,其他还有效果,裁剪,缩放,水印等,所有的操作都会以参数形式加在图片的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文档的代码说明

https://help.aliyun.com/document_detail/47505.html?spm=a2c4g.11186623.2.33.4c18c1f6Q9Yhkq#concept-agt-jgc-kfb

防盗链

防盗链功能通过设置Referer白名单,限制仅白名单中的域名可以访问您Bucket内的资源。OSS支持基于HTTP和HTTPS header中表头字段Referer的方法设置防盗链。

仅当通过签名URL或者匿名访问Object时,进行防盗链验证;当请求的Header中包含Authorization字段,不进行防盗链验证。

8.为什么要使用第三方图片存储服务,好处是什么?

第三方存储能保证安全、低成本、高可靠的云存储服务

对比项第三方存储自建服务器存储
可靠性多重冗余架构设计,为数据持久存储提供可靠保障。同时,基于高可用架构设计,消除单节故障,确保数据业务的持续性。
  • 规模自动扩展,不影响对外服务。
  • 数据自动多重冗余备份。
  • 受限于硬件可靠性,易出问题,一旦出现磁盘坏道,容易出现不可逆转的数据丢失。
  • 人工数据恢复困难、耗时、耗力。
安全
  • 提供企业级多层次安全防护,包括服务端加密、客户端加密、防盗链、IP黑白名单、细粒度权限管控、日志审计、WORM特性等。
  • 多用户资源隔离机制,支持异地容灾机制。
  • 需要另外购买清洗和黑洞设备。
  • 需要单独实现安全机制。
成本
  • 多线BGP骨干网络,带宽资源充足,上行流量免费。
  • 无需运维人员与托管费用,0成本运维。
  • 存储受硬盘容量限制,需人工扩容。
  • 单线或双线接入速度慢,有带宽限制,峰值时期需人工扩容。
  • 需专人运维,成本高。
智能存储提供多种数据处理能力,如图片处理、视频截帧、文档预览、图片场景识别、人脸识别、SQL就地查询等,并无缝对接Hadoop生态、以及函数计算、EMR、DataLakeAnalytics、BatchCompute、MaxCompute、DBS等产品,满足企业数据分析与管理的需求。需要额外采购,单独部署。

9.怎么样将短信发送服务抽像成公共代码,可以在多个项目中复用?

将共用的部分抽成工具类,或者做成单独的 module 供其他 module 调用

10.点对点短信和群发短信的通道区别是什么,怎么支持多种短信通道?

这个说的是考虑发送单条短信和多条短信吧。阿里云有支持这两种的调用。区别是传输过程中使用的网络协议不同。


返回列表 返回列表
评论

    分享到