媒资管理之视频管理

一:业务概述:

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

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

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

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

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

二:工作内容

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

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

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

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

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

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

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

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

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

上传是需要先初始化出一个minio对象,在客户端创建出一个bucket,相当于一个文件夹,用来保存上传过来的数据,然后针对于这些大文件的上传,就要进行断点续传了,在文件上传前要对文件进行检查,分块文件上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/81521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven 实现多模块项目依赖管理

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

nuxt项目中引入并配置 iview

安装iview npm install iview --save注:想要加入其它的配置,可以在 nuxt.config.js 的 plugins 配置项中加入,同时在 plugins 文件夹下加入引入逻辑。 在nuxt.config.js文件中写: {src: ~plugins/iview, ssr: true}同时新建 plugi…

BG开发者日志505:项目总体情况

1、从2024年12月中旬启动,到4月底gameplay部分开发完毕,已经四个半月过去了。 其中大部分内容是3、4两个月中完成的,量产阶段。 预计6月初参加新品节,6月中旬发售(比原计划7月中旬提前一个月)。 --------…

C++ *stream | istream / ostream / iostream 详解

注:本文为 “C *stream” 相关文章合辑。 英文引文,机翻未校。 中文引文,略作重排,未整理去重。 如有内容异常,请看原文。 Understanding the Utility of Iostreams in C 理解 C 中 iostream 的用途 By Manoj Debnat…

Dagster中的Ops与Assets:数据管道构建的两种选择

Dagster是一个强大的数据编排平台,它提供了多种工具来帮助数据工程师构建可靠的数据管道。在Dagster中,Ops和Assets是两种核心概念,用于定义数据处理逻辑。本文将全面介绍Ops的概念、特性及其使用方法,特别补充了Op上下文和Op工厂…

参数包展开到初始化列表

上次写过参数包展开和静态断言的使用——Accumulator-CSDN博客&#xff0c;数组是静态定义的&#xff0c;并且递归展开参数包。这里改用动态数组&#xff0c;并且将参数包展开到初始化列表中&#xff0c;成为一个动态数组。 #include <stdio.h> #include <vector>…

React18组件通信与插槽

1、为DOM组件设置Props 在react中jsx中的标签属性被称为Props DOM组件的类属性&#xff0c;为了防止与js中的class属性冲突改成了className DOM组件的style属性 import image from "./logo.svg"; function App() {const imgStyleObj {width: 200,height: 200,};re…

GTS-400 系列运动控制器板(十四)----软限位使用

运动控制器函数库的使用 运动控制器驱动程序、dll 文件、例程、Demo 等相关文件请通过固高科技官网下载,网 址为:www.googoltech.com.cn/pro_view-3.html 1 Windows 系统下动态链接库的使用 在 Windows 系统下使用运动控制器,首先要安装驱动程序。在安装前需要提前下载运动…

C++ 开发指针问题:E0158 表达式必须为左值或函数指示符

问题与处理策略 问题描述 int* ptr &10;执行上述代码&#xff0c;报如下错误 E0158 表达式必须为左值或函数指示符 C2101 常量上的“&”问题原因 10 是一个字面常量&#xff0c;常量是临时值&#xff0c;编译器不会为它们分配可寻址的内存空间 & 取地址运算符…

前端面经-VUE3篇(二)--vue3组件知识(二)依赖注入、异步组件、生命周期、组合式函数、插件

目录 一、依赖注入 1、 依赖注入是什么&#xff1f; 2、最基础的使用 3、为什么使用依赖注入&#xff1f; 4、 使用 Symbol 作注入名 二、异步组件 1、什么是异步组件&#xff1f; 2、最基础用法&#xff1a;defineAsyncComponent 3、在模板中使用异步组件 4、配置加载状态…

头歌数据库课程实验(索引与数据库完整性)

第1关&#xff1a;创建一般索引 任务描述 本关任务&#xff1a;为 student 表按姓名升序建立索引&#xff0c;索引名为 idx_sname。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 索引是什么&#xff1b; 索引的分类&#xff1b; 索引的创建和删除&#…

Socket 编程 UDP

Socket 编程 UDP UDP 网络编程V1 版本 - echo serverV2 版本 - DictServerV3 版本 - 简单聊天室 补充参考内容地址转换函数关于 inet_ntoa UDP 网络编程 声明&#xff1a;下面代码的验证都是用Windows作为客户端的&#xff0c;如果你有两台云服务器可以直接粘贴我在Linux下的客…

c++ 二级指针 vs 指针引用

二级指针 vs 指针引用&#xff1a;深入对比与分析 在C中&#xff0c;二级指针和指针引用都可以用于修改外部指针&#xff0c;但它们在语法、安全性和使用场景上有重要区别。下面我将从多个维度进行详细对比。 1. 基本概念 1.1 二级指针 (Pointer to Pointer) int a 10; in…

【Hive入门】Hive与Spark SQL深度集成:通过Spark ThriftServer高效查询Hive表

目录 引言 1 Spark ThriftServer架构解析 1.1 核心组件与工作原理 1.2 与传统HiveServer2的对比 2 Spark ThriftServer部署指南 2.1 环境准备与启动流程 2.1.1 前置条件检查 2.1.2 服务启动流程 2.2 高可用部署方案 2.2.1 基于ZooKeeper的HA架构 3 性能优化实战 3.…

[面试]SoC验证工程师面试常见问题(二)

SoC验证工程师面试常见问题(二) 摘要:面试SoC验证工程师时,SystemVerilog (SV) 和 UVM (Universal Verification Methodology) 是核心技能,而AXI总线是现代SoC中最常见的接口协议之一,因此也是必考点。以下是可能被问到的问题及优质答案的详细列表: 一、 System…

vue3 css模拟语音通话不同语音、正在加载等的效果

实现效果如下&#xff1a; 在不同的时间&#xff0c;显示不一样的效果&#xff08;大小是一样的&#xff0c;截图时尺寸发生了变化&#xff09; 具体实现代码如下&#xff1a; <script setup> import {ref} from "vue";const max_hight ref(40px) const min…

KeyPresser 一款自动化按键工具

1. 简介 KeyPresser 是一款自动化按键工具,它可以与窗口交互,并支持后台运行, 无需保持被控窗口在前台运行。用户可以选择要操作的目标窗口,并通过勾选复选框来控制要发送哪些按键消息。可以从组合框中选择所需的按键,并在编辑框中输入时间间隔以控制按键发送之间的延迟。程…

ai之paddleOCR 识别PDF python312和paddle版本冲突 GLIBCXX_3.4.30

这里写自定义目录标题 问题一**解决方案****方法 1&#xff1a;使用符号链接将系统库链接到 Conda 环境** **补充说明****验证修复结果** 问题二&#xff1a;**问题根源****解决方案****1. 确认 TensorRT 安装状态****2. 安装 TensorRT 并配置环境变量****3. 验证 TensorRT 与 …

【RabbitMQ】 RabbitMQ快速上手

文章目录 一、RabbitMQ 核心概念1.1 Producer和Consumer2.2 Connection和Channel2.3 Virtual host2.4 Queue2.5 Exchange2.6 RabbitMQ工作流程 二、AMQP协议三 、web界面操作4.1 用户相关操作4.2 虚拟主机相关操作 四、RabbitMQ快速入门4.1 引入依赖4.2 编写生产者代码4.2.1 创…

Beatoven AI 自动生成音乐

Beatoven AI 自动生成音乐 文章目录 Beatoven AI 自动生成音乐一、源代码二、准备工作1. 安装 Python 环境2. 安装依赖库 三、配置 API 密钥四、运行脚本示例一&#xff1a;使用默认参数示例二&#xff1a;生成一段电影预告片风格音乐&#xff08;30秒&#xff09; 五、生成结果…