jpsclient 2.7.1 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jpsclient/http/http_client.rb +5 -1
- data/lib/jpsclient/upload/upload_client.rb +31 -1
- data/lib/jpsclient/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3b469c45fc263d9c573736eba519b34ae855058e47b77a01428e5da3330ce052
|
|
4
|
+
data.tar.gz: cc4eb5ab5180c02022dff9df585d848cf51c1fab8914b0e129989b812501133b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0bfbf38a960e5b308f72b28e0962eebb0425fec3a15229c77f8a01b17353012fb988db35f47363cdea5ca57151a317c09b07e9ba999019fdff2ee7c940cb8aef
|
|
7
|
+
data.tar.gz: e8952174c4e5921e3cb7dad0e98c0f72f466aac458b50342eefabf82fc4f87727610bb303dc4b6a4d454fd41cc64739455aafc2c2ace2bde5f68733bd9c5e7f9
|
|
@@ -236,6 +236,10 @@ end
|
|
|
236
236
|
module JPSClient
|
|
237
237
|
# JPS API 响应封装类 - 简化版
|
|
238
238
|
class Response
|
|
239
|
+
# 登录 token 失效的业务码。调用方需要按它区分「认证失败」和「网络/服务端故障」,
|
|
240
|
+
# 提成常量避免各处硬编码
|
|
241
|
+
NEED_LOGIN_CODE = '20001'.freeze
|
|
242
|
+
|
|
239
243
|
attr_reader :code
|
|
240
244
|
attr_reader :data
|
|
241
245
|
attr_reader :msg
|
|
@@ -269,7 +273,7 @@ module JPSClient
|
|
|
269
273
|
|
|
270
274
|
# 20001: 登录token失效
|
|
271
275
|
def need_login?
|
|
272
|
-
@need_login || @code.to_s ==
|
|
276
|
+
@need_login || @code.to_s == NEED_LOGIN_CODE
|
|
273
277
|
end
|
|
274
278
|
|
|
275
279
|
# 20011: 没有权限访问项目
|
|
@@ -6,6 +6,7 @@ require 'digest'
|
|
|
6
6
|
require 'cgi'
|
|
7
7
|
require 'uri'
|
|
8
8
|
require 'jpsclient/base/exception'
|
|
9
|
+
require 'jpsclient/http/http_client'
|
|
9
10
|
require 'jpsclient/upload/upload_config'
|
|
10
11
|
require 'jpsclient/upload/upload_progress'
|
|
11
12
|
require 'jpsclient/utils/logger'
|
|
@@ -98,7 +99,7 @@ module JPSClient
|
|
|
98
99
|
end
|
|
99
100
|
|
|
100
101
|
if init_result.nil? || !init_result.dig("data", "upload_id")
|
|
101
|
-
raise ExceptionError,
|
|
102
|
+
raise ExceptionError, init_multipart_error_message(init_result)
|
|
102
103
|
end
|
|
103
104
|
|
|
104
105
|
upload_id = init_result["data"]["upload_id"]
|
|
@@ -169,6 +170,35 @@ module JPSClient
|
|
|
169
170
|
|
|
170
171
|
end
|
|
171
172
|
|
|
173
|
+
# 拼装初始化上传失败的错误信息
|
|
174
|
+
#
|
|
175
|
+
# 真实原因写在接口返回的 code / msg 里(例如 20001 登录态失效),
|
|
176
|
+
# 一律报「请检查网络或服务器状态」会把认证问题误导成网络问题;
|
|
177
|
+
# 而原始响应此前只在 JPSClient.debug? 下打印,排查时通常拿不到。
|
|
178
|
+
#
|
|
179
|
+
# @param init_result [Hash, nil] init_file_multipart 的原始返回
|
|
180
|
+
# @return [String] 带上真实原因的错误信息
|
|
181
|
+
def init_multipart_error_message(init_result)
|
|
182
|
+
return "初始化上传失败:接口无响应,请检查网络或服务器状态" if init_result.nil?
|
|
183
|
+
|
|
184
|
+
code = init_result["code"]
|
|
185
|
+
msg = init_result["msg"] || init_result["message"]
|
|
186
|
+
|
|
187
|
+
# request_with_auth 遇到 20001 会自动重新登录并重试一次,
|
|
188
|
+
# 这里仍拿到 20001 说明重登也没成功,需要用户手动重新登录
|
|
189
|
+
if code.to_s == Response::NEED_LOGIN_CODE
|
|
190
|
+
detail = msg.to_s.empty? ? "code=#{code}" : "code=#{code},msg=#{msg}"
|
|
191
|
+
return "初始化上传失败:登录态已失效,且自动重新登录未成功(#{detail}),请重新登录后重试"
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
parts = []
|
|
195
|
+
parts << "code=#{code}" unless code.nil?
|
|
196
|
+
parts << "msg=#{msg}" unless msg.to_s.empty?
|
|
197
|
+
parts << "响应中缺少 data.upload_id" if parts.empty?
|
|
198
|
+
|
|
199
|
+
"初始化上传失败(#{parts.join(",")}),请检查网络或服务器状态"
|
|
200
|
+
end
|
|
201
|
+
|
|
172
202
|
# 安全地检查上传失败状态
|
|
173
203
|
def upload_failed?
|
|
174
204
|
@upload_failed_mutex.synchronize { @upload_failed }
|
data/lib/jpsclient/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jpsclient
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.7.
|
|
4
|
+
version: 2.7.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Your Name
|
|
@@ -296,7 +296,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
296
296
|
- !ruby/object:Gem::Version
|
|
297
297
|
version: '0'
|
|
298
298
|
requirements: []
|
|
299
|
-
rubygems_version: 4.0.
|
|
299
|
+
rubygems_version: 4.0.10
|
|
300
300
|
specification_version: 4
|
|
301
301
|
summary: JPS Platform API Client with Full API Support
|
|
302
302
|
test_files: []
|