async getRoutineStagingCodeUploadInfo()

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;
    }
  }