49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
const OSS = require('ali-oss')
 | 
						|
import Vue from 'vue'
 | 
						|
const { GenerateSTS } = require('../api/user.js')
 | 
						|
import { getToken } from '@/utils/auth'
 | 
						|
 | 
						|
Vue.prototype.OSSclientConfig = {
 | 
						|
}
 | 
						|
 | 
						|
let rOss
 | 
						|
let t1, t2
 | 
						|
let time = 1000
 | 
						|
function timeout () {
 | 
						|
  t1 = setInterval(async () => {
 | 
						|
    var token = getToken()
 | 
						|
    if (token) {
 | 
						|
      let res = await GenerateSTS()
 | 
						|
      Vue.prototype.OSSclientConfig.region = res.Result.Region
 | 
						|
      Vue.prototype.OSSclientConfig.accessKeyId = res.Result.AccessKeyId
 | 
						|
      Vue.prototype.OSSclientConfig.accessKeySecret = res.Result.AccessKeySecret
 | 
						|
      Vue.prototype.OSSclientConfig.bucket = res.Result.BucketName
 | 
						|
      Vue.prototype.OSSclientConfig.basePath = res.Result.ViewEndpoint
 | 
						|
      Vue.prototype.OSSclientConfig.stsToken = res.Result.SecurityToken
 | 
						|
      Vue.prototype.OSSclient = new OSS(Vue.prototype.OSSclientConfig)
 | 
						|
      time = 60000 * 10
 | 
						|
    } else {
 | 
						|
      time = 1000
 | 
						|
    }
 | 
						|
  }, time)
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
async function ossGenerateSTS() {
 | 
						|
  let res = await GenerateSTS()
 | 
						|
  Vue.prototype.OSSclientConfig.region = res.Result.Region
 | 
						|
  Vue.prototype.OSSclientConfig.accessKeyId = res.Result.AccessKeyId
 | 
						|
  // Vue.prototype.OSSclientConfig.accessKeyId = 'mpXG7Nu6zTpsDrI1'
 | 
						|
  Vue.prototype.OSSclientConfig.accessKeySecret = res.Result.AccessKeySecret
 | 
						|
  // Vue.prototype.OSSclientConfig.accessKeySecret = 'yNINcEb099SkNfF6vYKaoP8TZNI3xZ'
 | 
						|
  Vue.prototype.OSSclientConfig.bucket = res.Result.BucketName
 | 
						|
  Vue.prototype.OSSclientConfig.basePath = res.Result.ViewEndpoint
 | 
						|
  Vue.prototype.OSSclientConfig.stsToken = res.Result.SecurityToken
 | 
						|
  Vue.prototype.OSSclient = new OSS(Vue.prototype.OSSclientConfig)
 | 
						|
  return rOss
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
export const OSSclient = ossGenerateSTS
 |