{"version":3,"sources":["webpack:///./src/utils/ossUpload.js"],"names":["uploadUrl","accessid","policyBase64","signature","callbackbody","key","expire","host","g_object_name","now","Date","parse","random_string","len","chars","maxPos","length","pwd","i","charAt","Math","floor","random","get_file_name","filename","pos","lastIndexOf","suffix","substring","set_file_name","oss","axios","get","params","bucketName","then","res","console","log","parseInt"],"mappings":"qHAAA,oEAEA,IAAIA,EAAY,qEAGZC,EAAW,GACXC,EAAe,GACfC,EAAY,GACZC,EAAe,GACfC,EAAM,GACNC,EAAS,EACTC,EAAO,GACPC,EAAgB,GAChBC,EAAOC,KAAKC,MAAM,IAAID,MAAU,IAGpC,SAASE,EAAcC,GACrBA,EAAMA,GAAO,GACb,IAAIC,EAAQ,mDACRC,EAASD,EAAME,OACfC,EAAM,GACV,IAAK,IAAIC,EAAI,EAAGA,EAAIL,EAAKK,IACvBD,GAAOH,EAAMK,OAAOC,KAAKC,MAAMD,KAAKE,SAAWP,IAEjD,OAAOE,EAGT,SAASM,EAAcC,GACrB,IAAIC,EAAMD,EAASE,YAAY,KAC3BC,EAAS,GAIb,OAHY,GAARF,IACFE,EAASH,EAASI,UAAUH,IAEvBE,EAGT,SAASE,EAAcL,GACrB,IAAIG,EAASJ,EAAcC,GAE3B,OADAhB,EAAgBH,EAAMO,EAAc,IAAMe,EACnC,GAIT,SAASG,EAAIN,EAAW,MAGtB,GADAf,EAAMC,KAAKC,MAAM,IAAID,MAAU,IAC3BD,EAEA,OAAOsB,IAAMC,IAAIhC,EAAU,CACvBiC,OAAQ,CACNC,WAAW,cAEdC,KAAKC,IACNC,QAAQC,IAAI,eAAeF,GAY3BlC,EAAekC,EAAI,UACnBnC,EAAWmC,EAAI,YACfjC,EAAYiC,EAAI,aAChB9B,EAASiC,SAASH,EAAI,WACtBhC,EAAegC,EAAI,YACnB7B,EAAO6B,EAAI,QACX/B,EAAM+B,EAAI,OAIM,MAAZZ,GACFK,EAAcL,GAGT,CACL,KAAQjB,EACR,IAAOC,EACP,OAAUN,EACV,eAAkBD,EAClB,sBAAyB,MAEzB,UAAaE","file":"js/fnc-utils-ossUpload.1fcdde17.js","sourcesContent":["import axios from 'axios'\r\n// 文件上传url\r\nlet uploadUrl = 'http://api.oldpeople.test.fnctech.com/api/common/file/getWebPolicy'\r\n\r\n\r\nlet accessid = ''\r\nlet policyBase64 = ''\r\nlet signature = ''\r\nlet callbackbody = ''\r\nlet key = ''\r\nlet expire = 0\r\nlet host = ''\r\nlet g_object_name = ''\r\nlet now = Date.parse(new Date()) / 1000;\r\n\r\n// 生成随机字符串\r\nfunction random_string(len) {\r\n len = len || 32;\r\n var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';\r\n var maxPos = chars.length;\r\n var pwd = '';\r\n for (let i = 0; i < len; i++) {\r\n pwd += chars.charAt(Math.floor(Math.random() * maxPos));\r\n }\r\n return pwd;\r\n}\r\n// 获取用户上传原始文件名\r\nfunction get_file_name(filename) {\r\n let pos = filename.lastIndexOf('.')\r\n let suffix = ''\r\n if (pos != -1) {\r\n suffix = filename.substring(pos)\r\n }\r\n return suffix;\r\n}\r\n// 把随机生成的字符串拼接在原始上传文件名后面生成新的唯一文件名\r\nfunction set_file_name(filename) {\r\n let suffix = get_file_name(filename)\r\n g_object_name = key + random_string(10) + suffix\r\n return ''\r\n}\r\n\r\n// 获取后端返回的签名信息,生成oss参数\r\nfunction oss(filename = null) {\r\n // 可以判断当前expire是否超过了当前时间, 如果超过了当前时间, 就重新取一下, 3 s 作为缓冲。\r\n now = Date.parse(new Date()) / 1000;\r\n if (now) {\r\n // 调用后端服务器接口获取签名信息,利用axios返回promise,可以链式调用\r\n return axios.get(uploadUrl,{\r\n params: {\r\n bucketName:'property'\r\n }\r\n }).then(res => {\r\n console.log('uploadjs----',res)\r\n /* 返回的签名策略信息包含:\r\n {\r\n accessid: \"LTAI*******UPPr\", // 用户请求的accessid\r\n callback: \"eyJjYWxs************H0ifQ==\", // 回调\r\n dir: \"test/file-dir/\", // 上传文件的存储位置\r\n expire: \"1557974779\", // 上传策略Policy失效时间\r\n host: \"http://xxxxxxxxx.com\", // 上传文件服务器地址\r\n policy: \"eyJleHBp***********6/EMG7U=\" ,// 用户表单上传的策略(Policy)\r\n signature: \"JumJy*****k6/EMG7U=\" // 签名信息\r\n }\r\n */\r\n policyBase64 = res['policy']\r\n accessid = res['accessid']\r\n signature = res['signature']\r\n expire = parseInt(res['expire'])\r\n callbackbody = res['callback']\r\n host = res['host']\r\n key = res['dir']\r\n\r\n\r\n\r\n if (filename != null) {\r\n set_file_name(filename)\r\n }\r\n // 返回表单上传需要的参数信息\r\n return {\r\n 'host': host,\r\n 'key': g_object_name,\r\n 'policy': policyBase64,\r\n 'OSSAccessKeyId': accessid,\r\n 'success_action_status': '200', //让服务端返回200,不然,默认会返回204\r\n // 'callback': callbackbody,\r\n 'signature': signature,\r\n };\r\n })\r\n }\r\n}\r\n\r\nexport { oss }"],"sourceRoot":""}