31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.1 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;
 | 
						|
      }
 | 
						|
      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');
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 |