in src/libs/apiService.ts [702:768]
async getRoutineStagingCodeUploadInfo(
edgeRoutine: EdgeRoutineProps
): Promise<boolean> {
try {
let params = {
action: 'GetRoutineStagingCodeUploadInfo',
version: '2024-09-10',
protocol: 'https',
method: 'GET',
authType: 'AK',
bodyType: 'json',
reqBodyType: 'json',
style: 'RPC',
pathname: '/',
toMap: function () {
return this;
}
};
let request = new $OpenApi.OpenApiRequest({
query: {
Name: edgeRoutine.name
}
});
let runtime = {
toMap: function () {
return this;
}
};
const uploadResult = await this.client.callApi(params, request, runtime);
const ossConfig = chain(uploadResult).get('body.OssPostConfig');
if (uploadResult.statusCode !== 200 || !ossConfig) {
return false;
}
const {
OSSAccessKeyId,
Signature,
callback,
Url,
key,
policy
}: IOssConfig = ossConfig;
const formData = new FormData();
formData.append('OSSAccessKeyId', OSSAccessKeyId);
formData.append('Signature', Signature);
formData.append('callback', callback);
formData.append('x:codeDescription', ossConfig['x:codeDescription']);
formData.append('policy', policy);
formData.append('key', key);
formData.append('file', edgeRoutine.code);
// TODO: 检查oss结果;
const ossRes = await fetch(Url, {
method: 'POST',
body: formData,
headers: formData.getHeaders()
});
if (ossRes && ossRes.status === 200) {
return true;
}
return false;
} catch (error) {
console.log(error);
return false;
}
}