123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- const qiniu = require('qiniu')
- const path = require('path')
- const key = 'dlPPwgZky_F-iP8CbSbJpiAtAcqw3BYwb9rdHMrS'
- const secre = 'YEtkLKDsImXB-8m1CT1zV_YwCwwGvrUvo2ktj9KZ'
- const host = 'model3d.4dage.com/'
- let getToken = (() => {
- const bucket = 'model3d'
- const expires = 7200
- let mac = new qiniu.auth.digest.Mac(key, secre);
- let defaultToken
- (function referToken() {
- let putPolicy = new qiniu.rs.PutPolicy({ expires, scope: bucket })
- defaultToken = putPolicy.uploadToken(mac);
- setTimeout(referToken, (expires - 200) * 1000)
- })();
- function getToken (name) {
- if (!name) return defaultToken;
- let scope = name ? bucket + ':' + name : bucket;
- let putPolicy = new qiniu.rs.PutPolicy({ expires, scope })
- return putPolicy.uploadToken(mac);
- }
- return getToken
- })();
- let zoons = {
- '华东': 'Zone_z0',
- '华北': 'Zone_z1',
- '华南': 'Zone_z2',
- '北美': 'Zone_na0'
- }
- function uploadFile(localFile, target, zone = '华南') {
- target = target.replace(/\\/ig, "\/")
- let config = new qiniu.conf.Config();
- let token = getToken(target)
- let formUploader = new qiniu.form_up.FormUploader()
- let putExtra = new qiniu.form_up.PutExtra();
- config.zone = qiniu.zone[zoons[zone]];
- config.useHttpsDomain = true;
- config.useCdnDomain = true;
-
- return new Promise((resolve, reject) => {
- formUploader.putFile(token, target, localFile, putExtra, err => {
- if (err) {
- reject(err)
- } else {
- resolve(host + target)
- }
- })
- })
- }
- module.exports = async (file, name) => {
- return await uploadFile(file, 'data/' + name)
- }
|