30 lines
987 B
JavaScript
Raw Normal View History

2025-04-24 17:03:28 +08:00
'use strict';
exports.encodeCallback = function(options) {
options.headers = options.headers || {};
if (!options.headers.hasOwnProperty('x-oss-callback')) {
if (options.callback) {
var 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;
}
var callback = new Buffer(JSON.stringify(json)).toString('base64');
options.headers['x-oss-callback'] = callback;
if (options.callback.customValue) {
var callbackVar = {};
for (var key in options.callback.customValue) {
callbackVar['x:' + key] = options.callback.customValue[key];
}
options.headers['x-oss-callback-var'] = new Buffer(JSON.stringify(callbackVar)).toString('base64');
}
}
}
};