exports.encodeCallback = function encodeCallback(reqParams, options) { reqParams.headers = reqParams.headers || {}; if (!Object.prototype.hasOwnProperty.call(reqParams.headers, 'x-oss-callback')) { if (options.callback) { const json = { callbackUrl: encodeURI(options.callback.url), callbackBody: options.callback.body }; if (options.callback.host) { json.callbackHost = options.callback.host; } if (options.callback.contentType) { json.callbackBodyType = options.callback.contentType; } if (options.callback.callbackSNI) { json.callbackSNI = options.callback.callbackSNI; } const callback = Buffer.from(JSON.stringify(json)).toString('base64'); reqParams.headers['x-oss-callback'] = callback; if (options.callback.customValue) { const callbackVar = {}; Object.keys(options.callback.customValue).forEach(key => { callbackVar[`x:${key}`] = options.callback.customValue[key].toString(); }); reqParams.headers['x-oss-callback-var'] = Buffer.from(JSON.stringify(callbackVar)).toString('base64'); } } } };