|                                   |  | const { policy2Str } = require('../utils/policy2Str');const signHelper = require('../signUtils');const { isObject } = require('../utils/isObject');
const proto = exports;
/** * @param {Object or JSON} policy specifies the validity of the fields in the request. * @return {Object} params *         {String} params.OSSAccessKeyId *         {String} params.Signature *         {String} params.policy JSON text encoded with UTF-8 and Base64. */proto.calculatePostSignature = function calculatePostSignature(policy) {  if (!isObject(policy) && typeof policy !== 'string') {    throw new Error('policy must be JSON string or Object');  }  if (!isObject(policy)) {    try {      JSON.stringify(JSON.parse(policy));    } catch (error) {      throw new Error('policy must be JSON string or Object');    }  }  policy = Buffer.from(policy2Str(policy), 'utf8').toString('base64');
  const Signature = signHelper.computeSignature(this.options.accessKeySecret, policy);
  const query = {    OSSAccessKeyId: this.options.accessKeyId,    Signature,    policy  };  return query;};
 |