大作业项目的实践开始 | 青训营笔记

175 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第6天

今天是年后恢复青训营的课程的第一天,不过青训营今天的课程是实践课,个人觉得能记录下来的知识偏少,所以这次的笔记记录一下我们小队关于抖音极简版大项目的开始工作,以便后续的查验。

本次大项目我们队选用的工具有MySQL数据库、gin框架、gorm库、minIO工具,后续可能会采用redis。整体设计框架大致分为四层:最底层Dao层对数据库的访问、其次是业务逻辑层具体实现功能、然后是controller层实现WEB框架、最后是用户鉴权对不同权限的用户验证。

本项目的难点目前有两点:

  1. 抖音视频video的存储方式选择。MySQL中存储的肯定只能是视频的url,而url下的vedio对象如何存储,可以考虑的是ftp协议或者是云服务器,但ftp协议是比较死板的,其他队伍采用过。关于这一问题队伍里的小伙伴也都没有经验,需要到时候一起去考虑;
  2. 视频封面的截取。从视频中截取图片作为抖音用户主页内容的封面,需要用到ffmpeg 工具。其他队有的是将ffmpeg工具放到服务器上,后端运行过程中向ffmpeg发送命令,进行截图。 这样的问题是,这种调用很粗暴:是将.mp4视频文件作为输入传递给ffmpeg工具,提取出一帧图片再存储,性能上有一些问题。我们队伍想调用第三方ffmpeg-go库,算是一个想法,但没有实现。

今天进行的工作:

  1. 安装MINio工具。MinIO 是一种高性能对象存储解决方案,提供与亚马逊云科技S3兼容的 API,并支持所有核心 S3功能。MinIO专为部署在任何地方而构建 公共云或私有云、裸机基础架构、编排环境和边缘基础架构。Minio可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows、Linux、 OS X和FreeBSD上。安装和配置非常简单,基本是复制可执行程序,单行命令就可以运行起来。minio还可以通过容器部署以及部署到k8s集群,详细部署方式可以查看官方文档。 下载地址安装教程
  2. 安装MySQL数据库,这个对于我没用过数据库的是第一次学习使用,下载及安装教程、环境变量配置
  3. 数据库可视化操作界面Navicat安装。“Navicat”是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,它与阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud 和 MongoDB Atlas等云数据库兼容。你可以创建、管理和维护数据库。Navicat 的功能足以满足专业开发人员的所有需求,但是对数据库服务器初学者来说又简单易操作。Navicat 的用户界面 (GUI) 设计良好,让你以安全且简单的方法创建、组织、访问和共享信息。下载安装及破解教程
  4. git提交代码的步骤流程,这是为了方便队伍在github上对整个项目代码进行更新。
  5. 青训营官方提供的抖音极简版安卓安装包,以及接口的功能描述,其中在设置中可以更改连接的ip地址,也就可以连接到本地的服务器进行接口功能的调试,链接在此

把上述的工具和环境安装配置好,今天跑通了框架程序。明天开始尝试调试具体的功能接口啦,笔记到这了。