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

fastadmin框架同时使用 阿里云oss和阿里云点播

背景

       项目的实际需求中既要用到阿里云oss产品又用到阿里云点播系统,实现完美的统一。设置两个地址downUrl,thirdCode。分别代表阿里云oss上传路径和阿里云点播系统vId。

实现

       默认框架你已经集成好阿里云oss集成工作,前端html页面实现

<form id="edit-form" class="form-horizontal form-ajax" role="form" data-toggle="validator" method="POST" action=""><input  name="row[id]" type="hidden" value="{$row.id}" ><div class="form-group" style="display: none"><label for="c-title" class="control-label col-xs-12 col-sm-2">{:__('作者')}:</label><div class="col-xs-12 col-sm-8"><input id="c-title" data-rule="" class="form-control" name="row[author]" type="text" value="{$row.author|htmlentities}" placeholder="请输作者"></div></div><div class="form-group"><label  class="control-label col-xs-12 col-sm-2">{:__('音视频')}:</label><div class="col-xs-12 col-sm-8"><div class="input-group"><input id="c-downurl" data-rule="" class="form-control" size="255" name="row[downurl]" type="text" value="{$row.downurl}"><div class="input-group-addon no-border no-padding"><span><button type="button" id="plupload-downurl" class="btn btn-danger plupload" data-input-id="c-downurl" data-mimetype="*" data-multiple="false" data-preview-id="p-downurl"><i class="fa fa-upload"></i> {:__('Upload')}</button></span><span><button type="button" id="fachoose-downurl" class="btn btn-primary fachoose" data-input-id="c-downurl" data-mimetype="*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span></div><span class="msg-box n-right" for="c-downurl"></span></div><ul class="row list-inline plupload-preview" id="p-downurl"></ul></div></div><div class="form-group layer-footer"><label class="control-label col-xs-12 col-sm-2"></label><div class="col-xs-12 col-sm-8"><button type="submit" class="btn btn-success btn-embossed" id="submit">{:__('OK')}</button><button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button></div></div>
</form>
table.bootstrapTable({url: $.fn.bootstrapTable.defaults.extend.index_url,showToggle: false,showColumns: false,showExport: false,//commonSearch: false,search:false,fixedColumns: true,fixedRightNumber: 1,columns: [[{checkbox: true},{field: 'id', title: __('序号'),operate:false},{field: 'category.name', title: __('格式'),operate:false,formatter:Table.api.formatter.label},{field: 'categoryId', title: __('格式'),visible: false,searchList: $.getJSON("ajax/filecate")},{field: 'title',title: __('标题'),operate:'LIKE',cellStyle: {css: {"max-width": "500px","white-space":"nowrap","overflow":"hidden","text-overflow":"ellipsis"}}},{field: 'secondId', title: __('分类'), visible: false,searchList: $.getJSON("ajax/schooldata")},{field: 'thumb', title: __('缩略图'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},{field: 'third_code', title: __('三方平台'),operate: false},{field: 'createtime', title: __('提交时间'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},                         {field: 'updatetime', title: __('更新时间'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},                         {field: 'status', title: __('Status'), formatter: Controller.api.formatter.station, searchList: {0: __('草稿'), 1: __('发布')}},{field: 'operate', title: __('Operate'), buttons: [{name: '视频转码',text: '',title: __('转码'),classname: 'btn btn-xs btn-success  btn-view btn-dialog',icon: 'fa fa-trademark',url: 'school/data/transfer?id={ids}',refresh:true ,visible: function (row) {//返回true时按钮显示,返回false隐藏if(row.categoryId===232){if(row.third_plat==0||!row.third_plat) return true;}return false}},{name: 'detail',text: '', title: '编辑',icon: 'fa fa-pencil',classname: 'btn btn-xs btn-info btn-addtabs',url: 'school/data/edit'}],						table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}]]});

使用ajax异常实现上传

public function uploadV(){Config::set('default_return_type', 'json');$attachment = null;$res="";//默认普通上传文件$file = $this->request->post('url');//print_r($file->getMime());//print_r($file->getFilename());//print_r($file->getRealPath());require_once APP_PATH. DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';try {//$upload = new Upload($file);//print_r($upload->getFile());//$attachment = $upload->upload();$apiRegionId = 'cn-beijing';$uploader = new \AliyunVodUploader(Config::get('aliVod.accessKeyId'), Config::get('aliVod.accessKeySecret'), $apiRegionId);$fileURL="http://xxxxxx".$file;$uploadVideoRequest = new \UploadVideoRequest($fileURL, "课程");$res = $uploader->uploadWebVideo($uploadVideoRequest);if ($res) { // 根据你的逻辑,可能需要检查 $res 是否表示成功return json(['status' => 'success', 'data' => $res]);} else {// 处理 $res 为空或失败的情况return json(['status' => 'error', 'message' => '上传失败,未获取到有效响应']);}} catch (\Exception $e) {return json(['status' => 'error', 'message' => $e->getMessage()]);}}

可以完美完成。本功能实现大概用了一周,遇到很多问题,包括sdk引入层级问题,ajax异步格式返回等待

相关文章:

fastadmin框架同时使用 阿里云oss和阿里云点播

背景 项目的实际需求中既要用到阿里云oss产品又用到阿里云点播系统&#xff0c;实现完美的统一。设置两个地址downUrl&#xff0c;thirdCode。分别代表阿里云oss上传路径和阿里云点播系统vId。 实现 默认框架你已经集成好阿里云oss集成工作&#xff0c;前端html页面实现 <…...

Java-JMX 组件架构即详解

JMX架构由三个主要组件构成&#xff1a; ‌MBeans&#xff08;Managed Beans&#xff09;‌&#xff1a;代表可管理的资源&#xff0c;是JMX的核心。MBean可以是Java类或接口&#xff0c;提供了管理操作的接口&#xff0c;如获取系统信息、设置参数等。‌MBeanServer‌&#x…...

unity打包web,发送post请求,获取地址栏参数,解决TypeError:s.replaceAll is not a function

发送post请求 public string url "http://XXXXXXXXX";// 请求数据public string postData "{\"user_id\": 1}";// Start is called before the first frame updatevoid Start(){// Post();StartCoroutine(PostRequestCoroutine(url, postData…...

java+ssm+mysql校园物品租赁网

项目介绍&#xff1a; 使用javassmmysql开发的校园物品租赁网&#xff0c;系统包含管理员、用户角色&#xff0c;功能如下&#xff1a; 管理员&#xff1a;用户管理&#xff1b;物品管理&#xff08;物品种类、物品信息、评论信息&#xff09;&#xff1b;订单管理&#xff1…...

Spring Boot中实现JPA多数据源配置指南

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;本文详细介绍了在Spring Boot项目中配置和使用JPA进行多数据源管理的步骤。从引入依赖开始&#xff0c;到配置数据源、创建DataSource bean、定义实体和Repository&#xff0c;最后到配置事务管理器和使用多数据…...

服务器加固

1.服务器密码复杂度 密码最小长度&#xff0c;密码复杂度策略 vim /etc/pam.d/system-auth --------------- #密码配置 #ucredit&#xff1a;大写字母个数&#xff1b;lcredit&#xff1a;小写字母个数&#xff1b;dcredit&#xff1a;数字个数&#xff1b;ocredit&#xff1a;…...

探索CSS中的背景图片属性,让你的网页更加美观

导语&#xff1a;在网页设计中&#xff0c;背景图片的运用能够丰富页面视觉效果&#xff0c;提升用户体验。本文将详细介绍CSS中背景图片的相关属性&#xff0c;帮助大家更好地掌握这一技能。 一、背景图片基本属性 1、background-image 该属性用于设置元素的背景图片。语法如…...

Oracle的打开游标(OPEN_CURSORS)

一、OPEN_CURSORS 概述 OPEN_CURSORS 指定会话一次可以拥有的打开游标&#xff08;私有 SQL 区域的句柄&#xff09;的最大数量。可以使用此参数来防止会话打开过多的游标。 OPEN_CURSORS参数说明 特性 描述 参数类型 Integer 默认值 50 修改方式 ALTER SYSTEM PDB级别…...

数值分析—数值积分

研究背景 积分的数学解法为牛顿莱布尼兹公式&#xff0c;数学表示为 ∫ a b f ( x ) d x F ( b ) − F ( a ) \int_{a}^{b} f(x)dxF(b)-F(a) ∫ab​f(x)dxF(b)−F(a)&#xff0c;但应用该方法有如下困难&#xff1a; 1&#xff0c; f ( x ) f(x) f(x)的原函数有时不能用初等函…...

克服大规模语言模型限制,构建新的应用方法——LangChain

大模型 大模型的出现和落地开启了人工智能(AI)新一轮的信息技术革命&#xff0c;改变了人们的生 活方式、工作方式和思维方式。大模型的落地需要数据、算力和算法三大要素。经过几 年发展&#xff0c;大模型的数据集(包括多模态数据集)制作已经形成了规约&#xff0c;Meta、Go…...

计算机网络 —— HTTPS 协议

前一篇文章&#xff1a;计算机网络 —— HTTP 协议&#xff08;详解&#xff09;-CSDN博客 目录 前言 一、HTTPS 协议简介 二、HTTPS 工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.引入证书 三、HTTPS 常见问题 1.中间人能否篡改证书&#xff1f; 2.中间人能否调…...

React第十七章(useRef)

useRef 当你在React中需要处理DOM元素或需要在组件渲染之间保持持久性数据时&#xff0c;便可以使用useRef。 import { useRef } from react; const refValue useRef(initialValue) refValue.current // 访问ref的值 类似于vue的ref,Vue的ref是.value&#xff0c;其次就是vu…...

React第十五节useReducer使用详解差异

useReducer() 的用法注意事项 1、 概述&#xff1a; useReducer() 常用于管理复杂的状态更新逻辑&#xff0c;特别是在状态更新依赖于多个条件或动作时&#xff0c;useReducer 提供了一种更加结构化和可维护的方式来处理状态。可以将更新函数写在组件外面 它与 useState() 相…...

NanoLog起步笔记-5-客户端简要描述

nonolog起步笔记-5-客户端简要描述 客户端的简要的设计图路notify模式服务端最好分两个核 NanoLog::setLogLevel(NOTICE);从 NANO_LOG 开始NANO_LOGcompiling time的语句getNumNibblesNeeded&#xff1a;得到prompt中&#xff0c;number的数量countFmtParams&#xff1a;得到所…...

Flink:入门介绍

目录 一、Flink简介 2.1 Flink 架构 2.2 Flink 应用程序 运行模式 二、Flink 集群 部署 2.1 本地集群模式 2.1.1 安装JDK​编辑 2.1.2 下载、解压 Flink 2.1.3 启动集群 2.1.4 停止集群 2.2 Standalone 模式 2.2.0 集群规划 2.2.1 安装JDK 2.2.2 设置免密登录 2…...

目标跟踪领域经典论文解析

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…...

网络编程 | TCP套接字通信及编程实现经验教程

1、TCP基础铺垫 TCP/IP协议簇中包含了如TCP、UDP、IP、ICMP、ARP、HTTP等通信协议。TCP协议是TCP/IP协议簇中最为常见且重要的通信方式之一&#xff0c;它为互联网上的数据传输提供了可靠性和连接管理。 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议…...

SAP导出表结构并保存到Excel 源码程序

SAP导出表结构并保存到Excel,方便写代码时复制粘贴 经常做接口,需要copy表结构,找到了这样一个程程,特别有用。 01. 先看结果...

Linux下redis环境的搭建

1.redis的下载 redis官网下载redis的linux压缩包&#xff0c;官网地址:Redis下载 网盘链接&#xff1a; 通过网盘分享的文件&#xff1a;redis-5.0.4.tar.gz 链接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取码: ehgj 2.redis安装与配置 将包上传到 /…...

REDMI瞄准游戏赛道,推出小屏平板

近日&#xff0c;REDMI推出了一款8.8英寸的小屏平板&#xff0c;引发市场关注。该平板采用LCD屏幕&#xff0c;搭载天玑9400处理器&#xff0c;定位游戏市场&#xff0c;意在开拓小屏平板的新领域‌。 ‌小屏平板新尝试‌ 这款REDMI平板未追随大屏潮流&#xff0c;而是选择了8…...

Turtlebot3仿真避坑指南:从ROS环境配置到GPU加速训练的全流程解析

Turtlebot3仿真避障训练全流程避坑指南&#xff1a;从环境配置到GPU加速的实战经验 第一次在实验室里启动Turtlebot3仿真环境时&#xff0c;我盯着屏幕上卡在99%加载进度的Gazebo界面整整三小时。作为机器人方向的研究生&#xff0c;没人告诉我仿真环境搭建会消耗80%的科研时间…...

OpenClaw配置备份:Qwen3.5-9B模型参数迁移与快速恢复方案

OpenClaw配置备份&#xff1a;Qwen3.5-9B模型参数迁移与快速恢复方案 1. 为什么需要系统化备份OpenClaw配置 上周我的开发机SSD突然故障&#xff0c;导致整个系统需要重装。当我重新部署OpenClaw时&#xff0c;突然意识到一个严重问题&#xff1a;过去三个月精心调试的模型参…...

LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置:二分查找实战

刷题路上&#xff0c;二分查找是绕不开的经典算法&#xff0c;而LeetCode 34题「在排序数组中查找元素的第一个和最后一个位置」&#xff0c;正是二分查找的进阶应用——它不仅要求我们找到目标值&#xff0c;更要精准定位其在非递减数组中的起始和结束位置&#xff0c;同时还要…...

OpenClaw调试技巧:百川2-13B任务失败时的6种排查方法

OpenClaw调试技巧&#xff1a;百川2-13B任务失败时的6种排查方法 1. 为什么需要专门的调试方法&#xff1f; 上周我让OpenClaw自动整理一批会议录音转文字稿&#xff0c;结果凌晨3点收到飞书报警——任务卡在"正在分析关键内容"阶段。第二天检查发现&#xff0c;百…...

WinRAR v7.21 Beta1 - 高效文件压缩加密解压缩软件

WinRAR v7.21 Beta1 是适配 Windows 的经典解压缩软件&#xff0c;支持 RAR、ZIP 等多格式压缩解压&#xff0c;具备固实压缩、加密等功能&#xff0c;64 位优化版完成汉化与注册适配&#xff0c;操作便捷&#xff0c;是电脑文件管理的优质选择。WinRAR v7.21 Beta1 软件详情介…...

32位 Windows App Service 最大能使用多少内存?

不同托管模式下可用内存如何计算&#xff1f;本文将针对这些问题进行详细解答。问题解答一、32 位程序最大能使用多少内存&#xff1f;理论上限约为 4GB32 位程序的内存地址由 32 个二进制位组成&#xff0c;因此理论上可以有 2 4,294,967,296 种不同的内存地址。每个内存地址…...

知网vs维普vs万方:用同一款工具降AI率效果差多少?

知网vs维普vs万方&#xff1a;用同一款工具降AI率效果差多少&#xff1f; 很多同学在降AI率的时候有一个疑问&#xff1a;学校用的是知网检测&#xff0c;我在某个平台降完之后&#xff0c;如果学校临时换成维普或万方&#xff0c;效果还能达标吗&#xff1f; 这个问题的本质是…...

OpenClaw监控方案:Qwen3-VL:30B任务执行日志与告警配置

OpenClaw监控方案&#xff1a;Qwen3-VL:30B任务执行日志与告警配置 1. 为什么需要监控OpenClaw自动化任务&#xff1f; 去年冬天&#xff0c;我部署了一个OpenClaw自动化流程来帮我整理技术文档。某个周末&#xff0c;这个本该每天运行的脚本突然"失联"了——直到周…...

OpenClaw/阿里copaw/阿里QoderWork/腾讯Qclaw/腾讯workbuddy综合对比

1、功能介绍 核心能力&#xff1a;自然语言交互、本地文件操作、代码执行 支持模型&#xff1a;Qwen、Deepseek、OpenAI 等主流厂家模型均支持&#xff08;硬件条件允许&#xff0c;也可通过ollama连接本地模型&#xff09; 机器人助手&#xff1a;飞书、企业微信、QQ等创建…...

别再折腾网络了!实测用Docker拉取Autoware镜像的几种靠谱方法(附完整代理配置)

高效获取Autoware Docker镜像的实战指南 引言 在自动驾驶开发领域&#xff0c;Autoware作为开源的自动驾驶软件栈&#xff0c;已经成为众多研究者和工程师的首选工具。然而&#xff0c;对于国内开发者而言&#xff0c;获取Autoware的Docker镜像往往成为项目启动的第一道门槛。本…...