mirror of https://github.com/jkjoy/sunpeiwen.git
28 lines
1.0 KiB
JavaScript
28 lines
1.0 KiB
JavaScript
|
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;
|
||
|
}
|
||
|
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');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
};
|