jkesHttp.js 1022 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const { forwardRequest, briefUrlPath } = require('../../lib/ProxyForwardClient')
  2. function jkesHttpLogLabel(traceId, taskId) {
  3. let s = ''
  4. if (traceId) s += `[${traceId}] `
  5. s += '[jkesHttp]'
  6. if (taskId) s += ` [${taskId}]`
  7. return s
  8. }
  9. /**
  10. * 对 JKES API 的 POST,经 RunForge-ProxyServer 转发(失败时由代理服务自动直连回退)。
  11. */
  12. async function postJkes(url, data, options = {}) {
  13. const {
  14. headers = {},
  15. timeout = 30000,
  16. logger = null,
  17. outboundMode = 'auto',
  18. taskId = null,
  19. traceId = null,
  20. validateStatus
  21. } = options
  22. const logPrefix = jkesHttpLogLabel(traceId, taskId)
  23. logger?.info?.(`${logPrefix} POST ${briefUrlPath(url)} mode=${outboundMode}`)
  24. return forwardRequest({
  25. method: 'post',
  26. url,
  27. data,
  28. headers,
  29. timeout,
  30. outboundMode,
  31. validateStatus,
  32. logger,
  33. logPrefix,
  34. scene: 'jkes'
  35. })
  36. }
  37. module.exports = {
  38. postJkes
  39. }