12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import http from '@/utils/http'
- import config from './config'
- import crypto from 'crypto-js';
- import { Base64 } from 'js-base64';
- export default {
- getCredential() {
- return http.post('mini/ali/mini_credential')
- },
- // 图片校验
- checkImg(data) {
- return http.post('mini/mini_wechat_app_info/media_check_async',data)
- },
- // 图片上传
- uploadImg(data) {
- return http.post('mini/lz_tree_image/insert',data)
- },
- // 计算签名
- computeSignature(accessKeySecret, canonicalString) {
- return crypto.enc.Base64.stringify(crypto.HmacSHA1(canonicalString, accessKeySecret));
- },
- getFormDataParams(){
- return new Promise((resolve)=>{
- this.getCredential().then(({code, data})=>{
- let { accessKeyId, accessKeySecret, securityToken } = data;
- const policy = Base64.encode(JSON.stringify(this.getPolicyText()))
- const signature = this.computeSignature(accessKeySecret, policy)
- const formData = {
- OSSAccessKeyId: accessKeyId,
- signature,
- policy,
- "x-oss-security-token":securityToken
- }
- resolve(formData)
- })
- })
- },
- getPolicyText(){
- const date = new Date();
- date.setHours(date.getHours() + 1);
- const policyText = {
- expiration: date.toISOString(), // 设置policy过期时间。
- conditions: [
- // 限制上传大小。
- ["content-length-range", 0, 1024 * 1024 * 1024],
- ],
- };
- return policyText
- },
- upload(formData,key,src){
- let host = "https://birdseye.oss-cn-guangzhou.aliyuncs.com/"
- return new Promise((resolve)=>{
- uni.uploadFile({
- url: host,
- filePath: src,
- name: 'file', // 必须填file。
- formData: {
- key,
- ...formData // 使用STS签名时必传。
- },
- success: (res) => {
- resolve(res)
- },
- fail: err => {
- console.log(err);
- }
- });
- })
- },
- }
|