当前位置: 首页 > wzjs >正文

广州哪个公司做网站好口碑营销策略

广州哪个公司做网站好,口碑营销策略,建的网站打开很慢,怎么自己做网站发优惠券一:业务概述: 媒资管理这个模块是我负责开发的,主要的管理对象是视频,图片,文档等 包括文件的上传,视频的处理,文件的删除 (在媒资管理界面,有个上传视频的按钮&#…

一:业务概述:

媒资管理这个模块是我负责开发的,主要的管理对象是视频,图片,文档等

包括文件的上传,视频的处理,文件的删除

(在媒资管理界面,有个上传视频的按钮,视频是在媒资这上传的,课程图片是在内容管理)

上传的图片和视频,会单独存储到搭建的分布式文件系统当中。

当上传视频时,视频比较大,如果我选择的是断点续传来进行上传,并且上传的视频不是都能直接播放的,要进行格式的转换,所以选择一个视频文件上传之后,会自动进行一个格式处理,最后还会进行视频与课程的绑定,这些做好之后,才可以发布一个课程。

二:工作内容

在这个系统中,我一共设计了三张表:分别是媒资文件表,待处理文件表,历史处理文件表。

 

媒资文件表保存了上传文件的详细信息,比如文件名称,文件类型(图片,文档,视频),存储目录,文件存储路径,文件访问url(针对于图片来说,存储路径和url一致,但是视频的存储路径是avi,而访问url是MP4格式),文件id(md5),等

待处理文件表保存了文件名称,状态,访问地址,失败信息等

历史处理文件表保存了文件名称,状态等

在这里面,我主要给您讲一下视频的上传与处理您看可以吗?

当视频上传之后,会将视频保存到minio这个系统当中

(因为minio系统比较轻量,操作简单,免费,而且可以保证数据安全,不会丢失)

(保证不丢失,是因为它保存的数据,是分块存储的,不会全部保存到一个硬盘上,并且还有备份)

在使用它之前,在程序中添加它的一个依赖,它提供了示例方法,用来进行上传,删除和下载,在程序当中去使用它提供的方法,在方法中依靠它的核心逻辑,进行改造,实现我们想要的功能。

上传是需要先初始化出一个minio对象,在客户端创建出一个bucket,相当于一个文件夹,用来保存上传过来的数据,然后针对于这些大文件的上传,就要进行断点续传了,所以在上传之前,就需要判断一下这个文件是否已经存在于数据库和minio中,如果存在,就没必要传了,如果不存在,还要进行判断一下,接着就准备一些参数,比如桶的名称,文件的本地路径,上传之后的文件名,然后就可以调用minio对象的一个upload方法实现上传,上传完之后,将文件的相关信息保存到文件表当中。

但是上传之后的视频格式如果不是MP4类型的,就不能直接播放,所以我使用了FFmepg这个工具,进行格式转换,但是由于视频的大小一般是很大的,并且数量也多,所以为了节省时间和提高效率,我使用了xxl-job这个分布式任务调度。

三:相关问题

1:上传之后,你返回数据用的什么类?

用的dto类,继承了文件类。

2:上传文件,你用的什么接收文件?

用的multipartfile这个类型接收文件

3:在service层,你用什么接收文件信息?

创建了dto类,用来接收文件信息,包括文件名称,上传人,文件类型等

4:你要给services层传什么参数?

因为要上传嘛,所以要传文件的本地路径,文件名字,文件信息

5:你在客户端是如何存储的文件?

在进行上传的时候,会上传对象名,客户端会根据对象名来创建子目录,存放文件的

6:你是以什么格式来存储的呢?

以年月日的格式创建子目录,进行存放,方便查找数据

7:那你是如何获取当前时间的?

使用了一个获取时间的类,获取完之后,对时间格式进行了操作,以斜杠的形式分割年月日,这样客户端会创建出对应的子目录。

8:上传的文件的文件名会不会重复?重复之后怎么办呢

如果文件名重复,会发生覆盖,所以为了避免这个问题,使用文件的md5值作为文件的名字

9:会不会上传失败?

可能会,上传任务完成会返回布尔值,会对布尔值进行判断。

10:在你保存信息到文件表中时,会不会文件已经存在于这个文件表了?

嗯,是有这种可能的,所以就需要先通过文件的id,先去查一下,对查出来的对象进行一下非空判断,为空的话,在进行插入操作。

11:那你是如何插入的呢?

先创建出一个mediafile对象,再使用beanutils的copy方法,为这个新对象赋值。

然后给新对象再设置一些值,比如文件id,桶的名称 ,文件地址也就是对象名,fileid(也就是md5值),url。

12:插入会不会失败?

会,所以对返回值判断,如果小于等于0,就打印日志

13:我看你那会说用到断点续传了,你介绍一下吧

因为视频文件会比较大,所以上传的时间会比较长,如果在这一段时间内,因为网络故障的原因,导致上传失败了,就需要重新开始上传,这样比较浪费时间,使用断点续传后,就可以从上一次结束的时候继续上传。

14:那你在项目中是如何使用的呢?

主要逻辑是把一整块文件呢,分成多个小块进行上传

具体做法是首先需要先检验一下要上传的文件是否存在,如果存在就不必重新上传了,

如果不存在,前端将文件分成块后,在进行上传前,会对块进行校验,如果存在,前端就不用上传,继续下一块。        

全部上传完毕后,就将所有分块进行合并,

同时合并之后,要对这个文件进行检验,看是否完整,具体做法是将新文件的md5值与旧文件的md5值进行比较,如果相等,就是完整的,否则就是不完整。

15:对于检验文件是否存在是怎么做的?

主要看是不是存在,如果存在,就不上传了。

我是先对数据库中检验,看看是否有有这个文件,拿着文件的id,也就是md5值进行查询,进行非空判断,如果是空的,就返回false,让前端传来数据,如果是非空,也不要掉以轻心,可能是脏数据,还得去查一下minio中是否有这个文件,先通过文件的相关信息,调用get方法,获取一个流对象,对这个流对象进行非空判断,如果为空就返回false,让前端传文件,如果不为空,返回true。

http://www.dtcms.com/wzjs/416470.html

相关文章:

  • 临沂网站设计价格北京seo网络优化招聘网
  • 公司做网站那家好成品在线视频免费入口
  • 腾讯云服务器怎么做网站2022近期时事热点素材
  • 哪些网站可以做付费视频教育培训机构十大排名
  • wordpress添加指定文章站长工具seo查询
  • 起诉网站服务平台百度地址
  • 做微信的网站有哪些功能吗浙江网站推广运营
  • 东莞网站建设销售前景怎么样福建百度推广
  • seo 网站结构调整怎么做百度推广
  • 住房及城乡建设部信息中心网站杭州关键词优化外包
  • 建站公司可靠吗知名网站
  • 盈利性网站域名选择新网域名
  • 暴力破解wordpress网站密码软件营销策略有哪些4种
  • 网站怎么做搜索引擎优化_百度知道一下
  • 做网站教程pdf重庆百度搜索优化
  • 设计做笔记的网站免费发布信息的平台
  • wordpress链接版权山东搜索引擎优化
  • 做网站注意事项网络营销案例2022
  • 高阳网站制作关键词挖掘查询工具
  • 店面设计方案重庆seo排
  • 如何建设一家网站2023b站免费推广入口
  • 门户网站建设的企业十大网站平台
  • 关于网站建设的合同范本百度官网地址
  • 社团网站建设优化设计答案六年级
  • 手机移动端网站怎么做的google play谷歌商店
  • 国内顶尖网站设计公司怎么去推广自己的产品
  • 加强网站互动交流平台建设自查营销网站建设的因素
  • 个人网站备案流程和规则qq群排名优化软件官网
  • element ui做门户网站cnzz站长统计工具
  • 全球ic采购网优化关键词规则