1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| import CryptoJS from 'crypto-js'; import { Base64 } from '@/static/utils/base64.js';
let config = { accessid: 'LTAxxxxxxxbSCf', accesskey: 'XwxxxxxxxZhCB', osshost: 'https://xxxx.oss-cn-qingdao.aliyuncs.com/' }
export function getOSS() { let date = new Date() date = date.setHours(date.getHours() + 1) let extime = "" + new Date(date).toISOString() var policyText = { "expiration": extime, "conditions": [ ["content-length-range", 0, 1024 * 1024 * 100] ] }; let policyBase64 = Base64.encode(JSON.stringify(policyText)) var signature = CryptoJS.HmacSHA1(policyBase64, config.accesskey).toString(CryptoJS.enc.Base64); var timetamp = new Date().getTime(); return { host: config.osshost, accessid: config.accessid, policyBase64: policyBase64, signature: signature, } }
export function uploadFileToAliOss(path, savePath) { let OSS = getOSS(); console.log('开始上传') let self = this; return new Promise((resolve, reject) => { uni.uploadFile({ url: OSS.host, filePath: path, fileType: 'image', name: 'file', formData: { 'key': savePath, 'OSSAccessKeyId': OSS.accessid, 'success_action_status': '200', 'policy': OSS.policyBase64, 'signature': OSS.signature, }, success: (res) => { console.log(res.data) uni.showToast({ title: '上传成功', icon: 'success', duration: 1000 }); console.log(OSS.host + savePath) resolve('suc'); }, fail: (err) => { console.log('upload fail', err); uni.showModal({ content: err.errMsg, showCancel: false }); reject('err') } }); }) }
|