callback.js 1.0 KB

123456789101112131415161718192021222324252627
  1. exports.encodeCallback = function encodeCallback(reqParams, options) {
  2. reqParams.headers = reqParams.headers || {};
  3. if (!Object.prototype.hasOwnProperty.call(reqParams.headers, 'x-oss-callback')) {
  4. if (options.callback) {
  5. const json = {
  6. callbackUrl: encodeURI(options.callback.url),
  7. callbackBody: options.callback.body
  8. };
  9. if (options.callback.host) {
  10. json.callbackHost = options.callback.host;
  11. }
  12. if (options.callback.contentType) {
  13. json.callbackBodyType = options.callback.contentType;
  14. }
  15. const callback = Buffer.from(JSON.stringify(json)).toString('base64');
  16. reqParams.headers['x-oss-callback'] = callback;
  17. if (options.callback.customValue) {
  18. const callbackVar = {};
  19. Object.keys(options.callback.customValue).forEach(key => {
  20. callbackVar[`x:${key}`] = options.callback.customValue[key].toString();
  21. });
  22. reqParams.headers['x-oss-callback-var'] = Buffer.from(JSON.stringify(callbackVar)).toString('base64');
  23. }
  24. }
  25. }
  26. };