项目中遇到利用阿里OSS上传文件,线上很多示例用到了各种SDK,却没有看到OSS BrowserJS-SDK相关示例,鉴于脑子不好使,记一下。

  1. 封装upload相关组件

  2. 使用npm安装SDK的开发包

    npm install ali-oss
  3. 在组件中实例化SDK并使用

    上述四个参数可通过调用后台接口获取,若前端直接封装,容易暴露。

  4. 前往(控制台-对象存储OSS-基本设置)配置CORS

    (详见官方文档)

  5. methods中封装相关上传方法

    export default {
    name:'aliUpload',
    data () {
    return {
    videoName:'',
    videoUrl: '',
    size:''
    }
    },
    methods:{
    doUpload(event){
    this.$emit('getProgress',0)
    let file = event.target.files
    this.size = file[0].size
    let tmpArr = file[0].name.split('.')
    let tmpName = md5(Date.now() + tmpArr[0])
    tmpName = tmpName + '.' + tmpArr[1]
    this.multipartUpload(tmpName,file[0])
    },
    multipartUpload(upName,upFile){
    //Vue中封装的分片上传方法(详见官方文档)
    let _this = this
    const progress = async function (p) {
    //项目中需获取进度条,故调用进度回调函数(详见官方文档)
    _this.$emit('getProgress',Math.round(p*100))
    }
    try {
    let result = client.multipartUpload(upName,upFile, {
    progress,
    meta: {
    year: 2017,
    people: 'test'
    }
    }).then(res=>{
    _this.videoUrl = res.res.requestUrls[0].split('?')[0]
    let info = {}
    info.name = res.name
    info.size = _this.size
    info.videoUrl = _this.videoUrl
    _this.$emit('getUrl',info)
    let head = client.head(upName); }).catch(err=>{
    console.log(err)
    }); } catch (e) {
    // 捕获超时异常
    if (e.code === 'ConnectionTimeoutError') {
    console.log("Woops,超时啦!");
    }
    console.log(e)
    }
    }, }
    }
  6. 外部引入组件使用

VUE-利用OSS BrowserJS-SDK实现阿里OSS前端上传的更多相关文章

  1. vue项目富文本编辑器vue-quill-editor之自定义图片上传

    使用富文本编辑器的第一步肯定是先安装依赖 npm i vue-quill-editor 1.如果按照官网富文本编辑器中的图片上传是将图片转为base64格式的,如果需要上传图片到自己的服务器,需要修改 ...

  2. 利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载

    利用struts2进行单个文件,批量文件上传,ajax异步上传以及下载 1.页面显示代码 <%@ page language="java" import="java ...

  3. OSS阿里云文件上传 demo。

    所需jar包: aliyun-openservices-1.2.3.jar jdom-1.1.jar commons-codec-1.4.jar commons-logging-1.1.1.jar g ...

  4. Ali OSS服务端签名直传并设置上传回调

    服务端签名直传并设置上传回调 背景 请参考 Web端直传实践 里的背景介绍. 当采用服务端签名后直传方案后,问题来了,用户上传数据后,很多场景下,应用服务器都要知道用户上传了哪些文件,文件名字,甚至如 ...

  5. laravel7 实现阿里云大文件上传

    1:新创一个桶名 2:下载SDK 3: 4: php编辑器 终端运行 5:阿里云复制代码 6:获取秘钥和毽 7: 控制器书写代码:切记引入oss namespac App\Http\Controlle ...

  6. Qt客户端阿里云服上传文件

    整体原理: 阿里云提供了c程序上传文件到阿里云服务器的sdk工具包,将这个工具包继承在自己的客户端,调用接口即可实现上传文件. 前期准备: 1.阿里云c程序客户端的sdk,下载地址:https://h ...

  7. php利用七牛云的对象存储完成图片上传-高效管理图片

    在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...

  8. (二)MQTT客户端模拟连接阿里云并上传数据

    本文主要讲述使用MQTT.fx接入物联网平台 一.下载MQTT.fx客户端 官网链接 二.设置相关参数 打开MQTT单片机编程工具,将三元组复制进去,生成所需要的信息 单片机工具下载地址 三元组还记得 ...

  9. Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙

    前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...

随机推荐

  1. mysql删除表结构中的“关键字”字段

    问题描述:一同事误将“describe”关键字放入建表语句中,虽成功建表,但因未关键词的缘故,无法插入数据.故需将字段drop并换为非关键字的字段. 解决过程: 按常规删除字段语句操作报错,语句如下: ...

  2. kali下的webshell工具-Weevely

    Weevely ------------------------------------------------ 主要特点: ·         隐蔽的类终端的PHP webshell ·       ...

  3. Mac环境下Redis的安装

    1.下载 官网下载地址:https://redis.io/download,选择对应的下载版本,我下载的是4.0.12 2.安装 1)下载文件解压后复制到/usr/local/目录下(快速找到路径小技 ...

  4. 3D Slicer中文教程(七)—图像中值滤波

    1.中值滤波概念 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘 ...

  5. AttributeError: 'module' object has no attribute 'enableTrace'

    Traceback (most recent call last): File "Long-lived-connection.py", line 29, in <module ...

  6. qml layout

    一.使用总结 1.锚点:锚点锚在父控件左边anchors.left: parent.left ,才可以设置anchors.leftMargin:20 才有作用,设置anchors.topMargin: ...

  7. 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer”。请确保使用限定程序集的名称且该程序集对运行的应用程序可用。有关详细信息,请参阅 http://go.m

    Windows服务中程序发布之后会如下错误: 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“Syste ...

  8. python正则表达式--split、sub、escape方法

    1.re.split 语法: re.split(pattern, string[, maxsplit=0, flags=0]) 参数: pattern    匹配的正则表达式 string      ...

  9. 2-4、配置Filebeat使用logstash

    配置filebeat使用logstash 重要:要将事件发送到Logstash,还需要创建一个Logstash配置管道,该管道监听传入的Beats连接并将收到的事件编入索引到Elasticsearch ...

  10. 远程链接mysql

    一. 设置账户密码 1. 创建用户:CREATE USER 'jiang'@'%' IDENTIFIED BY '1'; //%表示所有端口 2. 授予权限: GRANT ALL PRIVILEGES ...