MCPcopy Create free account
hub / github.com/Rfym21/Qwen2API / requestStsToken

Function requestStsToken

src/utils/upload.js:72–177  ·  view source on GitHub ↗
(filename, filesize, filetypeSimple, authToken, retryCount = 0, account)

Source from the content-addressed store, hash-verified

70 })
71 return base
72}
73
74const unwrapApiData = (response) => {
75 const payload = response?.data
76 return payload && payload.data && typeof payload.data === 'object'
77 ? payload.data
78 : payload
79}
80
81/**
82 * 请求STS Token(带重试机制)
83 * @param {string} filename - 文件名
84 * @param {number} filesize - 文件大小(字节)
85 * @param {string} filetypeSimple - 简化文件类型
86 * @param {string} authToken - 认证Token
87 * @param {number} retryCount - 重试次数
88 * @param {Object} [account] - 账户对象(用于解析账号级代理)
89 * @returns {Promise<Object>} STS Token响应数据
90 */
91const requestStsToken = async (filename, filesize, filetypeSimple, authToken, retryCount = 0, account) => {
92 try {
93 // 参数验证
94 if (!filename || !authToken) {
95 logger.error('文件名和认证Token不能为空', 'UPLOAD')
96 throw new Error('文件名和认证Token不能为空')
97 }
98
99 if (!validateFileSize(filesize)) {
100 logger.error(`文件大小超出限制,最大允许 ${UPLOAD_CONFIG.maxFileSize / 1024 / 1024}MB`, 'UPLOAD')
101 throw new Error(`文件大小超出限制,最大允许 ${UPLOAD_CONFIG.maxFileSize / 1024 / 1024}MB`)
102 }
103
104 const requestId = generateUUID()
105 const bearerToken = authToken.startsWith('Bearer ') ? authToken : `Bearer ${authToken}`
106
107 // Antidetect: per-account fingerprint headers replace static UA
108 const baseHeaders = buildRequestHeaders(account, {
109 extra: {
110 'Authorization': bearerToken,
111 'x-request-id': requestId
112 }
113 })
114 const headers = baseHeaders
115
116 const payload = {
117 filename,
118 filesize,
119 filetype: filetypeSimple
120 }
121
122 const requestConfig = {
123 headers,
124 timeout: UPLOAD_CONFIG.timeout
125 }
126
127 applyProxyToAxiosConfig(requestConfig, account);
128
129 logger.info(`请求STS Token: ${filename} (${filesize} bytes, ${filetypeSimple})`, 'UPLOAD', '🎫')

Callers 1

uploadFileToQwenOssFunction · 0.85

Calls 8

validateFileSizeFunction · 0.85
generateUUIDFunction · 0.85
getProxyAgentFunction · 0.85
errorMethod · 0.80
infoMethod · 0.80
successMethod · 0.80
warnMethod · 0.80
delayFunction · 0.70

Tested by

no test coverage detected