阿里云OSS上传视频,可分片上传

uniappH5实现 阿里云OSS上传视频 

示例图:

上传视频完整示例代码:

使用npm安装SDK开发包,安装命令为

npm install ali-oss --save

accessKeyId 和 accessKeySecret 还有 bucket 替换成你的就行。

multipartUpload 的第一个入参是: 文件路径 + 文件名称

第二个入参是文件对象

<template>
	<view class="quiz">
		<!-- 	<view class="title title3">
			上传
		</view> -->

		<!-- 添加图片 -->
		<view class="mainAddpic">
			<p class="addPic">
				<span>选择视频</span>
			</p>
			<view class="ThreePic">
				<video v-if="locVideoUrl" :src="locVideoUrl" class="add1"></video>
				<!-- <image class="addPic1" v-else src="@/static/upImg.png" @click="addPic" /> -->

				<img v-else class="picMore" @click="addPic()" src="@/static/upImg.png" />
			</view>
		</view>

		<view class="btn" @click="upbtn()">
			上传保存
		</view>

	</view>
</template>

<script>
	import OSS from 'ali-oss'
	import uploadFile from "@/util/uploadFile";
	var that;
	export default {
		data() {
			return {
				delet: "https://oss.xxx.com.cn/web/tempProject/applyClosed.png",
				addImg: "https://oss.xxx.com.cn/web/tempProject/addImg.png",
				quiz_upImg: 'https://oss.xxx.com.cn/web/tempProject/quiz_upImg.png',
				locVideoUrl: '',
			};
		},
		onLoad() {
			that = this;
		},
		methods: {

			// 添加
			addPic(e) {
				uni.chooseVideo({
					sourceType: ['camera', 'album'],
					success: (res) => {
						console.log('chooseVideo-res', res);
						this.locVideoObj = res.tempFile
						this.locVideoUrl = res.tempFilePath;
						console.log('locVideoUrl', this.locVideoUrl);
					}
				});

			},
			async upbtn() {
				uni.showLoading({
					title:'上传中···'
				})
				const client = new OSS({
					// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
					region: "oss-cn-shanghai",
					// 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
					accessKeyId: 'LTAI5tF59uyDCJxxxxxxxKD5',
					accessKeySecret: 'M5or7KKsHm2RxxxxxxxxxxCjeyQT',
					// 从STS服务获取的安全令牌(SecurityToken)。
					// 填写Bucket名称,例如examplebucket。
					bucket: "xxxx-pap",
				});
				const progress = (p, _checkpoint) => {
					// Object的上传进度。
					console.log(p);
					// 分片上传的断点信息。
					console.log(_checkpoint);
				};
				const headers = {  
				  // 指定Object的存储类型。
				  'x-oss-storage-class': 'Standard', 
				  // 指定Object标签,可同时设置多个标签。
				  //'x-oss-tagging': 'Tag1=1&Tag2=2', 
				  // 指定初始化分片上传时是否覆盖同名Object。此处设置为true,表示禁止覆盖同名Object。
				  'x-oss-forbid-overwrite': 'true'
				}
				const result = await client.multipartUpload(`meetingminu/${this.locVideoObj.name}`, 
					this.locVideoObj, {
					progress,
					// headers,
					// 指定meta参数,自定义Object的元信息。通过head接口可以获取到Object的meta数据。
					meta: {
					  year: 2020,
					  people: 'test',
					},
				});
				console.log('result', result);
				
				
				// 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。
				const head = await client.head(`meetingminu/${this.locVideoObj.name}`);
				console.log('head', head);
				
				uni.hideLoading()
				uni.showToast({
					title:'上传成功'
				})
				setTimeout(()=>{
					uni.reLaunch({
						url:'/pages/index/index'
					})
				},1500)
				
			},
		}
	};
</script>

<style lang="scss" scoped>
	.quiz {
		margin: 36rpx;
		position: relative;
		color: #102841;
		padding-bottom: 180rpx;

		.mainAddpic {
			width: 100%;
			padding: 40rpx 28rpx 50rpx;
			border-radius: 20rpx;
			margin-bottom: 20rpx;
			box-sizing: border-box;

			.ThreePic {
				display: flex;
				// justify-introduce: space-around;
				flex-wrap: wrap
			}

			.addPic {
				width: 100%;
				padding-left: 10rpx;
				padding-bottom: 10rpx;
				border-bottom: 1px solid #E5F1FF;

				span:nth-child(1) {

					font-family: PingFangSC-Medium, PingFang SC;
					font-size: 28rpx;
					color: grey;
					font-weight: bold;
				}

				span:nth-child(2) {
					font-size: 24rpx;
					color: #999;
				}
			}

			.picMore {
				width: 170rpx;
				height: 170rpx;
				border-radius: 8rpx;
				display: flex;
				margin: 30rpx auto 10rpx;
				position: relative;
				// border: 1px dashed #ccc;


				image {
					width: 88rpx;
					height: 88rpx;
					margin: 0 auto;
				}

				.add1 {
					width: 186rpx;
					height: 186rpx;
					border-radius: 8rpx;
				}

				.delete {
					position: absolute;
					right: 0;
					top: 0;
					z-index: 2;
					width: 40rpx;
				}

				.addPic1 {
					width: 60rpx;
					height: 60rpx;
				}
			}
		}

		.quiz_upImg {
			width: 212rpx;
			height: 212rpx;
			position: relative;
			left: 50%;
			margin-left: -106rpx;
			margin-top: 40rpx;
		}

		.title {
			// height: 100rpx;
			position: relative;
			font-size: 34rpx;
			font-family: Source Han Sans CN;
			font-weight: 500;
		}

		.title2 {
			margin-top: 80rpx;
		}

		.title3 {
			margin-top: 60rpx;
		}

		textarea {
			width: 83.8vw;
		}

		.xuanzhe {
			width: 83.8vw;
			position: relative;
			top: 22rpx;
			padding: 24rpx;
			background: #fcfcfc;
			border-radius: 14rpx;
			box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(16, 40, 65, 0.26);

			.rrr {
				width: 12rpx;
				height: 22rpx;
				position: absolute;
				right: 30rpx;
				margin-top: 10rpx;
				z-index: 3;
			}
		}

		textarea {
			position: relative;
			top: 22rpx;
			padding: 24rpx;
			background: #fcfcfc;
			border-radius: 14rpx;
			box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(16, 40, 65, 0.26);
		}

		.textarea1 {
			height: 70rpx;
		}

		.textarea2 {
			margin-top: 26rpx;
			height: 200rpx;
		}

		.btn {
			position: relative;
			margin: auto;
			margin-top: 34rpx;
			border-radius: 10rpx;
			height: 70rpx;
			line-height: 70rpx;
			width: 220rpx;
			left: 50%;
			margin-left: -110rpx;
			background-color: #102841;
			color: #fff;
			font-size: 32rpx;
			text-align: center;
		}

		.list {
			margin-top: 40rpx;

			.item {
				width: 90%;
				padding-bottom: 0rpx;
				min-height: 80rpx;
				background: #FFFFFF;
				box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(16, 40, 65, 0.26);
				border-radius: 12rpx;
				margin: auto;
				position: relative;
				margin-bottom: 28rpx;

				.red_point {
					margin-top: -6rpx;
					margin-right: 14rpx;
					width: 16rpx;
					height: 16rpx;
					border-radius: 50%;
					background-color: red;
					position: absolute;
					right: 4rpx;
				}

				.txt {
					line-height: 96rpx;
					// height: 36rpx;
					font-size: 28rpx;
					font-family: Source Han Sans CN;
					font-weight: 500;
					color: #102841;
					margin-left: 30rpx;
					width: 470rpx;
					overflow: hidden;
					text-overflow: ellipsis;
					white-space: nowrap;
				}

			}
		}
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

​软件测试面试:关键问题解析

在软件开发领域&#xff0c;测试是确保软件质量的重要环节。面试是评估软件测试人员技能和经验的关键时刻。在一个软件测试面试中&#xff0c;面试官通常会问一系列问题来评估面试者的知识、技能和解决问题的能力。本文将介绍一些常见的软件测试面试问题&#xff0c;并给出一些…

网站内容无法复制,怎么办?

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

基于ssm阅微文学网站的设计与开发+vue论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

应用案例 | 使用Softing PROFIBUS Tester 5解决网络问题

PROFIBUS是在工业自动化领域里被广泛使用的现场总线协议&#xff0c;它具有高可靠性、低成本等优势&#xff0c;主要应用于制造业、能源、交通等领域。然而&#xff0c;随着时间的推移&#xff0c;PROFIBUS网络也不可避免地会出现一些组件老化的问题&#xff0c;从而对其性能和…

车速预测 | Matlab基于RBF径向基神经网络的车速预测模型(多步预测,尾巴图)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 车速预测 | Matlab基于RBF径向基神经网络的车速预测模型&#xff08;多步预测&#xff0c;尾巴图&#xff09; 程序设计 完整程序和数据获取方式&#xff1a;私信博主回复Matlab基于RBF径向基神经网络的车速预测模型…

漫画演绎策略设计模式

引言 本篇主要通过一小篇漫画的形式给大家讲讲策略模式&#xff0c;由于策略模式本身不是很难&#xff0c;这里就不花太多的言辞描述了&#xff0c;一起看漫画吧 普通设计 从前有一个妈妈&#xff0c;她有一个叛逆的儿子&#xff0c;妈妈每天除了上下班就是要教育儿子&#…

XTuner 大模型单卡低成本微调原理

文章目录 Finetune简介增量预训练微调指令跟随微调微调原理 XTuner微调框架XTuner数据引擎XTuner微调的优化策略 动手实战 Finetune简介 微调模式&#xff1a; 增量预训练微调 使用场景&#xff1a;让基座模型学习到一些新知识&#xff0c;如某个垂直领域的常识训练数据&…

微信小程序swiper实现层叠轮播图

在微信小程序中,需要实现展示5个&#xff0c;横向层叠的轮播图效果&#xff0c;轮播图由中间到2侧的依次缩小.如下图 使用原生小程序进行开发,没有使用Skyline模式&#xff0c;所以layout-type配置项也无效。所以基于swiper组件进行调整。 主要思路就是设置不同的样式&#xff…

勒索软件组织“黑猫”攻击英国国防公司 Ultra 的美国子公司得手

英国国防公司 Ultra 的美国子公司 Ultra Intelligence & Communications (Ultra I&C) 遭到 ALPHV (BlackCat) 勒索软件组织的攻击。 暗网上出现的信息显示&#xff0c;ALPHV 黑客在他们的博客上发布了 Ultra I&C 数据。据他们称&#xff0c;在 2023 年 12 月 27 日…

热点报告 | “尔滨”火出东北,本期热点带你盘活冬季营销

您是否曾有以下困惑&#xff1f;打开小红书首页推荐&#xff0c;似乎已经被算法教育成了成熟的信息茧房&#xff0c;想要找到下一个热点&#xff0c;又忧虑一叶以障目&#xff1b;看着搜索框热词&#xff0c;又担心无法掌握热词背后的话题命脉&#xff0c;难以在浮光掠影中寻找…

FastAPI + NGINX + Gunicorn 部署域名接口

简介: 今天接到一个活&#xff0c;给了我一台云服务器、域名&#xff0c;然后用FastAPINGINX来部署接口&#xff0c;接口的url是由域名组成的。话不多说直接看效果&#xff1a; 1.安装相关工具 1.1、 安装python: 如果已经安装python就跳过咯 sudo apt update sudo apt inst…

使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性

前言&#xff1a;什么是集成配置系统&#xff1f; 集成配置系统的主要目的是将应用程序的配置信息与代码分离&#xff0c;使得配置信息可以在不需要修改代码的情况下进行更改。这样可以提高应用程序的灵活性和可维护性。 ASP.NET Core 提供了一种灵活的配置系统&#xff0c;可…

C++-windows-linux-linuxdeployqt打包QT应用程序

1.windows下的qt5.14 1.1发布&#xff1a;发布这个选项的&#xff0c;也就是左下角改debug为release&#xff0c;设置后&#xff0c;点击编译build会在release中发现exe文件&#xff0c;直接执行exe会报错&#xff1b;缺失各种库。 QT命令行 要用Qt的命令行终端执行发布命令 …

零基础小白如何自学sql?

学习SQL对于数据分析和处理来说非常重要。SQL是一种强大的工具&#xff0c;可以帮助你与数据库沟通&#xff0c;提取&#xff0c;整理和理解数据。 以下是一些学习SQL的建议&#xff1a; 01 前期&#xff1a;SQL数据库学习 了解SQL的基本概念&#xff1a;首先&#xff0c;你…

亚信安慧AntDB超融合数据库:拓展亿级用户系统的智能化新纪元

在面对亿级用户规模的系统建设需求时&#xff0c;传统数据库往往面临诸多挑战。为了满足多样化的技术要求&#xff0c;项目通常需要倚赖多套技术体系&#xff0c;例如&#xff0c;一套关系型数据库用于元数据管理和标签化管理&#xff0c;另一套则专注于非结构化文件的处理。这…

Spark原理——总体介绍

总体介绍 编写小案例 &#xff08;wordcount&#xff09; Test def wordCount(): Unit {// 1. 创建 sc 对象val conf new SparkConf().setMaster("local[6]").setAppName("wordCount_source")val sc new SparkContext(conf)// 2. 创建数据集val textRDD…

【2023 - 探索】博0到博1,游戏新地图的探索日志

【2023 - 探索】博0到博1&#xff0c;游戏新地图的探索日志 写在最前面CSDN探索日志2023的探险 探索日志年终回顾探索 冒险回顾实习6月开始跟着老师做科研年中的一些其他事情9月开始上课开学后11月&#xff0c;读者互动 新年展望新年祝福 写在最前面 2023&#xff0c;我解锁了新…

C++ 之LeetCode刷题记录(八)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅&#xff0c;多学多练&#xff0c;尽力而为。 先易后难&#xff0c;先刷简单的。 35. 搜索插入位置 给定一个排序数组和一个目标值&#xff0c;…

Github

文章目录 Github 的作用基本概念创建仓库以及相关介绍创建文件、查看文件信息、编辑程序上传文件搜索文件下载/检出文件 Github 的作用 项目代码托管平台 基本概念 Repository 仓库&#xff0c;用于存放项目代码 *Star 收藏项目&#xff0c;方便下次查看&#xff08;有一百个st…

SpringBoot内嵌Tomcat启动流程

前言 Spring MVC 让开发者不用了解 Servlet 细节&#xff0c;专注于 Controller 编写 API 接口。Spring Boot 更是采用约定大于配置的设计思想&#xff0c;通过内嵌 Tomcat 的方式让开发者可以快速构建并部署一个 Web 应用。怎么做到的呢&#xff1f; Tomcat启动方式 早期的…