本文介绍了vue页面使用阿里oss上传功能的实例(一),分享给大家,也给自己留个笔记
直奔主题:
前端部分
1.前端页面中需要引入oss-sdk:
<script src="/UploadFiles/2021-04-02/aliyun-oss-sdk-4.4.4.min.js">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-oss npm install co2.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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]