UNPKG

minapp-fetch

Version:
153 lines (152 loc) 6.15 kB
"use strict"; /* * @Author: your name * @Date: 2020-05-18 18:02:23 * @LastEditTime: 2020-06-06 08:58:58 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /@ownpack/weapp/src/fetch/file/upload.ts */ Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils/utils"); const constants_1 = require("./constants/constants"); const error_1 = require("./constants/error"); function fetchUpload(fileParams, metaData) { let { BaaS_F, minapp, options } = utils_1.getBaaSF(); return new Promise((resolve, reject) => { if (constants_1.PLATFORM_NAME_BAAS.indexOf(minapp) > -1) { if (minapp === constants_1.PLATFORM_NAME.ZX_CLOUD) { let MyFile = new BaaS_F.File(); MyFile.upload(fileParams, metaData).then((res) => { // 上传成功 resolve(res); }, (err) => { // HError 对象 reject(err); }); } let MyFile = new BaaS_F.File(); MyFile.upload(fileParams, metaData).then((res) => { // 上传成功 resolve(res); }, (err) => { // HError 对象 reject(err); }); } //MongoDB if (constants_1.PLATFORM_NAME_MONGO_SERVER.indexOf(minapp) > -1) { if (minapp === constants_1.PLATFORM_NAME.MONGODB) { throw new Error(`minapp.upload ${error_1.METHOD_NOT_SUPPORT}`); } if (minapp === constants_1.PLATFORM_NAME.WX_WEAPP) { let tempFileName = new Date().getTime() + fileParams.filePath.match(/\.[^.]+?$/)[0]; BaaS_F.uploadFile({ filePath: fileParams.filePath, cloudPath: metaData.categoryName + '/' + (metaData.fileName ? metaData.fileName : tempFileName) }).then(res => { resolve(res); }, (err) => { reject(err); }); } if (minapp === constants_1.PLATFORM_NAME.WX_CLOUD) { BaaS_F.uploadFile({ fileContent: fileParams.fileObj, cloudPath: metaData.categoryName + '/' + metaData.fileName }).then(res => { resolve(res); }, (err) => { reject(err); }); } } //webapi if (minapp === constants_1.PLATFORM_NAME.ZX_WEBAPI) { if (!options) throw new Error(error_1.WEBAPI_OPTIONS_ERROR); BaaS_F({ method: 'post', url: `${options.RequestBase}/hserve/v2.1/upload/`, headers: options.Header, data: metaData }).then((res) => { let tempA = res.data; let formdata = new FormData(); formdata.append('file', fileParams.fileObj); BaaS_F({ method: 'post', url: tempA.upload_url, headers: { 'Content-Type': 'multipart/form-data', }, data: { authorization: tempA.authorization, file: formdata, policy: tempA.policy } }).then((res2) => { let result = { data: { categories: { id: metaData.categoryID, name: metaData.categoryName }, created_at: res2.data.time, id: tempA.id, mime_type: res2.data.mimetype, name: tempA.name, path: tempA.path, size: res2.data.file_size } }; resolve(result); }).catch((err) => { reject(err); }); }).catch((err) => { reject(err); }); } //op 运营后台 if (minapp === constants_1.PLATFORM_NAME.ZX_OP) { let params = { fileObj: fileParams.fileObj, filename: metaData.fileName, categoryID: metaData.categoryID, }; BaaS_F.post('https://cloud.minapp.com/userve/v2.1/upload/', { filename: params.filename, category_id: params.categoryID }).then((res) => { let temp = res.data; let formData = new FormData(); formData.append('file', params.fileObj); formData.append('policy', temp.policy); formData.append('authorization', temp.authorization); let axiosUp = require('axios'); axiosUp.post(temp.upload_url, formData, { 'headers': { 'Content-Type': 'multipart/form-data' }, }).then((res) => { resolve({ data: { path: temp.path, id: temp.id, name: temp.name, cdn_path: temp.cdn_path, created_at: temp.created_at, } }); }).catch((err) => { reject(err); }); }).catch((err) => { reject(err); }); } if (constants_1.PLATFORM_ALL.indexOf(minapp) === -1) { throw new Error(`minapp.upload ${error_1.METHOD_NOT_SUPPORT}`); } }); } exports.default = fetchUpload;