Commit d5ac46d7 authored by 成旭东's avatar 成旭东

文件oss直传

parent 87e05d8b
Pipeline #28209 passed with stage
in 8 minutes 12 seconds
import { upload} from '@/services/media';
import { getOssConfig } from '@/services/media';
import { extend } from 'umi-request';
import moment from 'moment';
import { message } from 'antd';
export interface MediaModelType {
namespace: 'media';
......@@ -14,14 +17,43 @@ const MediaModel: MediaModelType = {
effects: {
*upload({ file, callback }: any, { call }: any) {
const ossConfig = yield call(getOssConfig);
const filename = `mp_estate_media_${new Date().getTime()}.${file.type.split('/')[1]}`;
const ossFilename = `${moment().format('YYYYMMDD')}/${filename}`;
const formData = new FormData();
formData.append('name', filename);
formData.append('key', ossFilename);
formData.append('policy', ossConfig.res.policy);
formData.append('OSSAccessKeyId', ossConfig.res.OSSAccessKeyId);
formData.append('success_action_status', '200');
formData.append('signature', ossConfig.res.signature);
formData.append('file', file);
const response = yield call(upload, formData);
if (callback) {
callback(response);
}
// const response = yield call(upload, formData);
// if (callback) {
// callback(response);
// }
const request = extend({
timeout: 60000,
headers: {
'Content-Type': 'multipart/form-data'
}
});
request.post('https://wafang.oss-cn-hangzhou.aliyuncs.com/', {
data: formData,
}).then(() => {
if (callback) {
callback({
url: `https://wafang.oss-accelerate.aliyuncs.com/${ossFilename}`,
});
}
}).catch((error) => {
console.log(error);
});
},
},
......
......@@ -6,3 +6,9 @@ export async function upload(params: any) {
data: params,
});
}
export async function getOssConfig() {
return request('/upload/oss/config', {
method: 'GET',
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment