国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue頁面使用阿里oss上傳功能的實例(一)

2019-11-19 15:51:21
字體:
來源:轉載
供稿:網友

本文介紹了vue頁面使用阿里oss上傳功能的實例(一),分享給大家,也給自己留個筆記

直奔主題:

前端部分

1.前端頁面中需要引入oss-sdk:

<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"></script>

2.自己封裝的upload組件:

<template> <div>  <div class="oss_file">   <input type="file" :id="id" :multiple="multiple" @change="doUpload"/>  </div> </div></div></template><script> export default{  props:{   multiple:{    type: Boolean,    twoWay:false   },   id:{    type: String,    twoWay:false   },   url:{    type: Array,    twoWay:true   }  },  data(){   return{    region:'Your oss Region',    bucket:'Bucket Name',   };  },  methods:{   doUpload(){    const _this = this;    Vue.http.get('/alioss/getOssToken').then((result) => {     const client = new OSS.Wrapper({      region:_this.region,      accessKeyId: result.data.token.AccessKeyId,      accessKeySecret: result.data.token.AccessKeySecret,      stsToken: result.data.token.SecurityToken,      bucket:_this.bucket     })     const files = document.getElementById(_this.id);     if(files.files){      const fileLen = document.getElementById(_this.id).files      const resultUpload = [];        for (let i = 0; i < fileLen.length; i++) {       const file = fileLen[i];       const storeAs = file.name;       client.multipartUpload(storeAs, file, {       }).then((results) => {        if(results.url){         resultUpload.push(results.url);        }       }).catch((err) => {        console.log(err);       });      }      _this.url = resultUpload;     }     });   }  } };</script><style type="text/css"> .oss_file {  height: 100px;  width: 100%; } .oss_file input {  right: 0;  top: 0;  opacity: 0;  filter: alpha(opacity=0);  cursor: pointer;  width: 100%;  height: 100%; }</style>

3.使用組件:

<template> <div>  <div>   <ali-upload :url.sync="uploadUrl" :multiple="true" :id="uploadId" :code.sync="uploadCode"></ali-upload>  </div>  <div v-for="url in uploadUrl">   ![](url)  </div> </div></div></template><script> import aliUpload from './../components/aliossupload.vue'; export default{  components:{   aliUpload  },  data(){   return{    uploadUrl:[],    uploadId:'file',    uploadCode:0   };  },  watch:{   uploadCode(val){    console.info(val)   }  } };</script>

后端部分

1.首先安裝依賴

npm install ali-ossnpm install co

2.service文件

'use strict'var OSS = require('ali-oss');var STS = OSS.STS;var co = require('co');var sts = new STS({ accessKeyId: 'accessKeyId', accessKeySecret: 'accessKeySecret',});var rolearn = 'acs:ram::ID:role/ram';var policy = { "Version": "1", "Statement": [ {  "Effect": "Allow",  "Action": [  "oss:GetObject",  "oss:PutObject"  ],  "Resource": [  "acs:oss:*:*:Bucket",  "acs:oss:*:*:BucketName/*"  ] } ]};class OssUploadService { getOssToken(req, res){  var result = co(function* () {   var token = yield sts.assumeRole(rolearn, policy, 15 * 60, 'ossupload');   res.json({    token:token.credentials   })  }).catch(function (err) {  }); }}module.exports = new OssUploadService()

3.controller文件

'use strict'var ossUploadService = require('../service/ossUploadService')module.exports = function(app) { app.get('/alioss/getOssToken', function(req, res) { const result = ossUploadService.getOssToken(req, res) if (result) {  res.json({  code: 100,  data: result  }) } })}

到這里就大功告成了嗎?錯!這只是完成了最基本的部分,接下來我們要在阿里云控制臺中設置權限、角色、策略等。

源碼地址:https://github.com/taosin/alioss-js-upload

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌兰察布市| 安庆市| 金沙县| 巩留县| 道真| 辽中县| 南宫市| 新泰市| 从江县| 体育| 英超| 师宗县| 宁南县| 思茅市| 乐山市| 阳山县| 涟水县| 白山市| 靖远县| 三都| 长寿区| 临沭县| 天气| 苏尼特右旗| 尼勒克县| 北辰区| 墨脱县| 龙胜| 太和县| 梅州市| 易门县| 清远市| 汝南县| 临湘市| 定结县| 丰都县| 离岛区| 丹东市| 金乡县| 格尔木市| 辽阳县|