vue ali-oss 视频上传封装组件

本文介绍了如何在Vue项目中使用ali-oss库进行视频上传,包括阿里云账号注册、Bucket创建及设置、accessKey管理、Vue项目初始化以及单文件和多文件上传的简易示例代码。特别提到,为了优化样式,采用了原生input[type=file]并提供了样式调整建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 注册阿里云oss 账号 地址(https://www.aliyun.com/)
  2. 创建Bucket
    在这里插入图片描述

3.设置Bucket (允许跨域)
在这里插入图片描述
在这里插入图片描述
4. 生产accessKeyId 和 accessKeySecret
在这里插入图片描述
5. 创建vue项目,并安装ali-oss

npm install ali-oss  --save  或者 cnpm install ali-oss  --save 

6.单文件上传 简易示例代码如下:

<template>
  <div>
    <el-upload
      class="avatar-uploader"
      action=""
      :http-request="beginUpload"
      :show-file-list="false">
      <img v-if="imageUrl" :src="imageUrl" class="avatar">
      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
    </el-upload>
    <el-progress :percentage="Number(percentage.toFixed(2))"></el-progress>
    <el-button @click="pauseUpload">暂停</el-button>
    <el-button @click="goonUpload">继续</el-button>
  </div>
</template>

<script>
import OSS from 'ali-oss'
export default {
  components: {},
  data () {
    return {
      imageUrl: '',
      percentage: 0,
      checkpoint: null,
      client: null,
      filename: ''
    }
  },
  computed: {
  },
  created () {
    this.client = new OSS({
      region: 'oss-cn-hangzhou',
      accessKeyId: '<Your AccessKeyId>',
      accessKeySecret: '<Your AccessKeySecret>',
      bucket: 'Your bucket name',
      secure: false
    })
  },
  methods: {
    async ossUpload (filename, file) {
      let _this = this
      try {
        let r
### 配置阿里云OSS 为了在Vue项目中集成并使用阿里云OSS服务进行文件上传和管理,需先完成必要的配置工作。这涉及到安装依赖库以及设置访问凭证。 #### 安装依赖包 通过npm或yarn来安装`ali-oss` SDK: ```bash npm install ali-oss --save ``` 或者 ```bash yarn add ali-oss ``` #### 设置环境变量 创建`.env`文件,在其中定义如下环境变量以便安全存储密钥信息: ```plaintext VUE_APP_OSS_REGION=your-region-id VUE_APP_OSS_ACCESS_KEY_ID=your-access-key-id VUE_APP_OSS_ACCESS_KEY_SECRET=your-access-key-secret VUE_APP_OSS_BUCKET_NAME=your-bucket-name ``` ### 初始化客户端实例 可以在项目的工具函数目录下新建一个名为`aliOss.js`的模块用于封装OSS操作逻辑,并导出供其他地方调用: ```javascript // src/utils/aliOss.js import OSS from 'ali-oss'; const client = new OSS({ region: process.env.VUE_APP_OSS_REGION, accessKeyId: process.env.VUE_APP_OSS_ACCESS_KEY_ID, accessKeySecret: process.env.VUE_APP_OSS_ACCESS_KEY_SECRET, bucket: process.env.VUE_APP_OSS_BUCKET_NAME, }); export default function infoClient() { return client; } ``` ### 实现文件上传功能 对于具体的文件上传处理,则可以根据实际需求编写相应的业务逻辑代码片段。下面是一个基于Element UI `upload`组件的例子展示如何自定义上传请求[^1]: ```html <template> <el-upload :before-upload="handleBeforeUpload"> <!-- 组件内部结构 --> </el-upload> </template> <script> import { infoClient } from '@/utils/aliOss'; export default { methods: { handleBeforeUpload(file) { // 判断oss初始化是否成功 if (!infoClient()) { this.$message.error('OSS未正确初始化'); return false; } async fnUploadRequest(file) { try { const result = await infoClient().put(file.name, file); if (result.res.statusCode === 200) { console.log('图片上传成功', result.url); // 更新表单中的字段或其他状态... } } catch (error) { console.error(error.message || error); } } fnUploadRequest(file); return false; // 取消默认上传动作 }, }, }; </script> ``` 上述代码展示了如何利用`fnUploadRequest()`方法来进行异步文件上传至阿里云OSS服务器,并且当上传完成后会触发通知提示用户操作结果。 另外,针对大型文件上传场景,还可以考虑分片上传策略以提高效率和稳定性[^2]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值