oss分片上传视频或者图片

var oss_result;
      // 获取oss配置
      await this.$axios.modelAdmin
        .oss_conf()
        .then(res => {
          oss_result = res.data;
        });
      // oss配置
      var oss_obj = oss_result;
      let client = new OSS.Wrapper({
        secure: true,
        region: "oss-cn-beijing", //你的oss地址 ,具体位置见下图
        accessKeyId: oss_obj.token.AccessKeyId, //你的ak
        accessKeySecret: oss_obj.token.AccessKeySecret, //你的secret
        stsToken: oss_obj.token.SecurityToken,
        bucket: "graphic-module" //ossbucket//edu-pigeonhole
      });
      //上传到oss的地址
      var store = "Graphic_module/" + "25855" + "/" + this.file.name;

      var str = this.form.videocontent;
      //需要向服务器传的base64
      // var file_rea = new OSS.Buffer(
      //   str.replace(/^data:\w+\/\w+;base64,/, ""),
      //   "base64"
      // );
      var that = this;
      const file_result = await client.multipartUpload(store, this.file, {
        partSize: 10485760,
        parallel: 50,
        headers: {
          // "Content-MD5":
        },
        progress: async function(p, checkpoint) {
          console.log(p);
          console.log(checkpoint);

          // 断点记录点。 浏览器重启后无法直接继续上传,需用户手动触发进行设置。
          that.percentageWidth = parseInt(p * 100);
        }
      });

 

你可以使用 Element UI 和阿里云 OSS 来实现分片上传视频。首先,你需要在你的项目中引入 Element UI 组件库和阿里云 OSS 的 SDK。 然后,你可以使用 Element UI 中的上传组件来实现文件选择和上传的功能。在上传组件中,你可以设置一些参数来启用分片上传功能。例如,你可以设置 `chunkSize` 参数来指定每个分片的大小,以及 `chunkRetry` 参数来设置分片上传失败时的重试次数。 在上传过程中,你可以使用阿里云 OSS 的 SDK 来进行分片上传。你需要将视频文件切割成多个分片,并将每个分片上传到阿里云 OSS 中的指定位置。可以使用 `oss.multipartUpload` 方法来实现分片上传功能。 具体的代码实现步骤如下: 1. 引入 Element UI 和阿里云 OSS 的 SDK: ```javascript import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import OSS from 'ali-oss'; ``` 2. 初始化阿里云 OSS 客户端: ```javascript const client = new OSS({ region: 'your_region', accessKeyId: 'your_access_key_id', accessKeySecret: 'your_access_key_secret', bucket: 'your_bucket_name' }); ``` 3. 在上传组件中设置分片上传参数: ```html <el-upload :action="your_upload_url" :on-success="handleSuccess" :chunk-size="your_chunk_size" :chunk-retry="your_chunk_retry" > <el-button slot="trigger">选择视频文件</el-button> </el-upload> ``` 4. 实现上传成功的回调函数: ```javascript handleSuccess(response, file, fileList) { // 在上传成功后,你可以根据需要进行后续处理,例如保存视频路径等操作 } ``` 5. 在回调函数中实现分片上传: ```javascript handleSuccess(response, file, fileList) { const { uploadId, name } = response.data; // 获取上传 ID 和文件名 const chunks = splitVideoIntoChunks(file); // 将视频文件切割成多个分片 const uploadPromises = chunks.map((chunk, index) => { return client.uploadPart(name, uploadId, index + 1, chunk); // 上传每个分片 }); Promise.all(uploadPromises) .then(results => { const etags = results.map(result => result.etag); return client.completeMultipartUpload(name, uploadId, etags); // 完成分片上传 }) .then(() => { console.log('分片上传完成'); }) .catch(error => { console.error('分片上传失败', error); }); } ``` 以上是一个简单的示例,你可以根据自己的需求进行适当调整。希望以上信息对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值