pindo 4.7.9 → 4.8.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6aaeca7f069b61265bf65ea62d49bf8b3d3e64ccf2755475a68c37afa54b12fb
4
- data.tar.gz: 980495658d7accae82e4bf4f11913892edfb0efeaae49438e9003f9a67aed5f2
3
+ metadata.gz: 0cff4bb49b837340114cc7cb33a2a6d2cbbb91ac74e97a2485d803887fdc2713
4
+ data.tar.gz: 8b4390944c7a344643014534b9167f01ace020bf4fac8ff3ac485da4c4ae7506
5
5
  SHA512:
6
- metadata.gz: f89ffccfccdd56678fe98cac69f9eb621276a264aa93bd7bdd55d78995220cfc25b199c6f1da3b4ebf7a03e7b3a86b75568e8a252da3089c2211f088c0195e33
7
- data.tar.gz: 566ff17b4b945007869f8acdce6d5e7bb10ec688973f82ad92aeb7e10dd12e9ddf4fb570424b3892813af57601d821ac867c586a3dbc9b967b7e0d9e5763ba50
6
+ metadata.gz: 8dbc329c5d290c7abbcf75dee882a07ea7187187ba38287271fa485c21d75fd22fcd8267a362d38e49e4bb87813ab6b0d56c53c67dae1e49f570de0ad6c68739
7
+ data.tar.gz: 2263c2090f3377f75241d8b9a0adfb8db568acce03393f01eae36e0413ca1303cd4cde8ba6c5ebb2b70c9d4b2b47d28095e18516e7d236e262a8a6bf38e6f52f
@@ -99,9 +99,8 @@ module Pindo
99
99
  puts "文件路径: #{@upload_binary_file}"
100
100
  puts "文件大小: #{total_m}M"
101
101
  puts "上传路径: #{upload_path_key}"
102
- puts "切片大小: 5 MB"
103
- puts "最大线程数: #{task_num}"
104
102
  puts
103
+ puts "切片大小: 5MB"
105
104
 
106
105
  upload_result = nil
107
106
 
@@ -110,7 +109,19 @@ module Pindo
110
109
 
111
110
  upload_id= result_data["data"]["uploadId"]
112
111
  @upload_params_list = result_data["data"]["uploadParamsList"]
112
+ task_num = @upload_params_list.length
113
+ retry_count = 5
114
+ if task_num < 2
115
+ task_num = 2
116
+ end
117
+
118
+ if task_num > 100
119
+ task_num = 100
120
+ end
113
121
 
122
+ puts "线程个数: #{task_num}"
123
+ puts "重试次数: #{retry_count}"
124
+ puts
114
125
 
115
126
  Funlog.instance.fancyinfo_start("开始上传...")
116
127
  @upload_eTags = []
@@ -118,10 +129,10 @@ module Pindo
118
129
  # single_task_upload_data_req( )
119
130
 
120
131
 
121
- multi_task_upload_data_req(task_num:task_num)
132
+ multi_task_upload_data_req(task_num:task_num, retry_count:retry_count)
122
133
 
123
134
  result_data = post_upload_finish_req(upload_path_key:upload_path_key, upload_id:upload_id, eTags:@upload_eTags)
124
- puts result_data
135
+
125
136
  if result_data["code"] == 200
126
137
  upload_result = upload_path_key
127
138
  Funlog.instance.fancyinfo_success("文件#{@upload_binary_file} 上传成功! 😎😎😎")
@@ -135,11 +146,10 @@ module Pindo
135
146
  end
136
147
 
137
148
 
138
- def multi_task_upload_data_req(task_num:1)
139
-
149
+ def multi_task_upload_data_req(task_num:1, retry_count: 3)
140
150
 
141
151
  for i in 0..@upload_params_list.length-1 do
142
- @upload_params_list[i]["retryCount"] = 3
152
+ @upload_params_list[i]["retryCount"] = retry_count
143
153
  end
144
154
 
145
155
  while @upload_params_list.size > 0
@@ -193,7 +203,6 @@ module Pindo
193
203
  put_data = file.read(read_length)
194
204
 
195
205
  request = create_req(upload_url:upload_url, body_data:put_data, read_length:read_length)
196
-
197
206
  request.on_progress do |dltotal, dlnow, ultotal, ulnow|
198
207
  if ulnow
199
208
  @progress_bar.update_upload_index(upload_part:part_no, upload_size:ulnow)
@@ -201,8 +210,6 @@ module Pindo
201
210
  end
202
211
  end
203
212
 
204
- eTag_item = nil
205
-
206
213
  request.on_complete do |response|
207
214
  if response.success?
208
215
  @progress_bar.complete_upload_index(upload_part:part_no, complete_size:read_length)
@@ -213,7 +220,8 @@ module Pindo
213
220
  @progress_bar.delete_upload_index(upload_part:part_no)
214
221
  upload_params_item["retryCount"] = upload_params_item["retryCount"] - 1
215
222
  if upload_params_item["retryCount"] > 0
216
- @upload_params_list.push(upload_params_item)
223
+ # @upload_params_list.push(upload_params_item)
224
+ single_task_upload_part_data_req(upload_params_item:upload_params_item, hydra_handle:hydra_handle)
217
225
  else
218
226
  Funlog.instance.fancyinfo_error("文件#{@upload_binary_file} 上传失败! 😭😭😭")
219
227
  raise Informative, "上传文件失败"
@@ -226,9 +234,6 @@ module Pindo
226
234
  else
227
235
  hydra_handle.queue(request)
228
236
  end
229
-
230
- return eTag_item
231
-
232
237
  end
233
238
 
234
239
  def create_req(upload_url:nil, body_data:nil, read_length:nil)
@@ -333,6 +338,7 @@ module Pindo
333
338
  attr_accessor :upload_total_size
334
339
  attr_accessor :last_update_time
335
340
  attr_accessor :update_ing_size
341
+ attr_accessor :is_done
336
342
 
337
343
  def initialize(upload_total_size:nil, draw_char:'>')
338
344
 
@@ -343,6 +349,8 @@ module Pindo
343
349
 
344
350
  @complete_size = 0
345
351
  @update_ing_size = {}
352
+
353
+ @is_done = false
346
354
  end
347
355
 
348
356
  def update_upload_index(upload_part:nil, upload_size:nil)
@@ -365,7 +373,7 @@ module Pindo
365
373
  total_num = @upload_total_size
366
374
  index_num = @complete_size
367
375
  @update_ing_size.each do |key, value|
368
- index_num = index_num + value
376
+ index_num = index_num + value
369
377
  end
370
378
 
371
379
  progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
@@ -374,19 +382,14 @@ module Pindo
374
382
  index = 40.0 * index_num / total_num
375
383
  upload_message = "已上传:#{upload_size}MB|#{progress_str}\%【" + (@draw_char * (index/1).floor).ljust(40.0, '_') + "】Total:#{total_size}MB"
376
384
  Funlog.instance.fancyinfo_update(upload_message)
385
+ if index_num == total_num && !@is_done
386
+ @is_done = true
387
+ Funlog.instance.fancyinfo_success(upload_message)
388
+ end
377
389
  end
378
390
  end
379
391
 
380
392
  end
381
393
 
382
- # def set_progress(index_num, total_num, char ='>' )
383
- # progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
384
- # total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
385
- # upload_size = sprintf("%.2f", 1.00 * index_num / 1024 /1024 )
386
- # index = 40.0 * index_num / total_num
387
- # upload_message = "已上传:#{upload_size}MB|#{progress_str}\%【" + (char * (index/1).floor).ljust(40.0, '_') + "】Total:#{total_size}MB"
388
- # Funlog.instance.fancyinfo_update(upload_message)
389
- # end
390
-
391
394
  end
392
395
  end
data/lib/pindo/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Pindo
2
2
 
3
- VERSION = "4.7.9"
3
+ VERSION = "4.8.1"
4
4
 
5
5
  class VersionCheck
6
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pindo
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.9
4
+ version: 4.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - wade
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-23 00:00:00.000000000 Z
11
+ date: 2024-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: claide