代码记录
const OSS = require('ali-oss')
const endpoint = 'https:oss对外服务的访问域名.com'
const accessKeyId = '访问身份验证中用到用户标识'
const accessKeySecret = ' 用户用于加密签名字符串和oss用来验证签名字符串的密钥'
const bucket = 'oss的存储空间'
/**
* 上传
*/
function uploadFun(opction) {
return new Promise((resolve, reject) => {
let { file } = opction
const client = new OSS({
endpoint,
accessKeyId,
accessKeySecret,
bucket,
})
let name = reFileName()
client
.put(name, file)
.then((res) => {
let url = res.url
resolve(url)
})
.catch((err) => {
console.log(err)
reject()
alert('上传失败')
})
})
}
/**
* 生成名字(guid+毫秒级时间戳+‘gushitong’字符串)
*/
reFileName(fileName) {
// 取文件后缀
let suffixName = fileName
if (fileName.lastIndexOf(".") != -1) {
suffixName = fileName.substring(fileName.lastIndexOf("."))
}
let name = `meetingAdminFile/${getDate()}/admin${guid()}${parseInt(new Date().getTime())}${suffixName}`
return name
}
/**
* 获取guid
*/
function guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (Math.random() * 16) | 0,
v = c == 'x' ? r : (r & 0x3) | 0x8
return v.toString(16)
})
}
/**
* 获取年月日
*/
function getDate() {
var myDate = new Date()
myDate.getFullYear()
myDate.getMonth()
myDate.getDate()
var day = myDate.getDate() >= 10 ? myDate.getDate() : '0' + myDate.getDate()
var month =
myDate.getMonth() + 1 >= 10
? myDate.getMonth() + 1
: '0' + (myDate.getMonth() + 1)
myDate.toLocaleDateString()
return myDate.getFullYear() + '-' + month + '-' + day
}
export default {
uploadFun,
}