crawlab_ruby_sdk 0.1.0 → 0.1.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: 53cc3b34e599f5a093bb5c53b8b2b8604667212b4cdde7b735a5d5eb281a9449
4
- data.tar.gz: 1f99db5c5ad65dd23cb7de3c6d8132a651fe66e2e15f05091cbda36aa93c90dc
3
+ metadata.gz: ce64075649a810d878b0bcc3f9dd0e9c7de41d4fd9a2dece09d7cb0ce4afe075
4
+ data.tar.gz: 14f0c8c8005e724fff5d2cda3e4ae3b44f69e347a853c550cd422fdf285c1a33
5
5
  SHA512:
6
- metadata.gz: 3661d366e9178bcf22c34424cc4dc481837d8b34c10a1d66f5d71a88d9119a4954bdb92b8b1f2f2d801dca581a6edb8f103ee9a00c965b6e69040c714ba1bd4b
7
- data.tar.gz: 18959fafddab87d747f2a5af38a6ac52b94546132e8f5d150811d6170292786c4331da44fdd88f47e7a0a858a5e93c2316db1e417df67adcfc297c8052d2762d
6
+ metadata.gz: 591569d4dc1df08a0fd4d3ec4e6872c75d7b2d3dfb282e2c55fcd0db95c4ab7b85997292572ba4cb831b0ce8c706c1d593277224d7534dcfd4983923c2c4441f
7
+ data.tar.gz: 6b327871a439b12552792a215991acf6e15c36f4e05554bbe1412856018cbe93ec1465b393cde1347e43c977b7f96ccfa888a721552f859bb424c29fe493d290
@@ -6,11 +6,16 @@ Gem::Specification.new do |spec|
6
6
  spec.authors = ["min"]
7
7
  spec.email = ["lijinmin3903@126.com"]
8
8
 
9
- spec.summary = %q{This guy is very lazy.}
10
- spec.description = %q{This guy is very lazy.}
9
+ spec.summary = %q{Write a short summary, because RubyGems requires one.}
10
+ spec.description = %q{Write a longer description or delete this line.}
11
11
  spec.homepage = "https://github.com/rich-bro/crawlab_ruby_sdk"
12
12
  spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
13
 
14
+ spec.add_dependency 'grpc','~> 1.55.0'
15
+ spec.add_dependency 'google-protobuf','~> 3.23.2'
16
+ spec.add_dependency 'json','~> 2.6.3'
17
+ spec.add_dependency 'aliyun-sdk','~> 0.8.0'
18
+
14
19
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
15
20
 
16
21
  spec.metadata["homepage_uri"] = spec.homepage
@@ -0,0 +1,53 @@
1
+ require 'aliyun/oss'
2
+
3
+ class OssServerClient
4
+ attr_accessor :oss_client
5
+ attr_accessor :bucket
6
+
7
+ def initialize
8
+ get_oss_client
9
+ get_bucket
10
+ end
11
+
12
+ def get_oss_client
13
+ endpoint = ENV["CRAWLAB_OSS_ENDPOINT"]
14
+ access_key_id = ENV["CRAWLAB_OSS_ACCESS_KEY"]
15
+ access_key_secret = ENV["CRAWLAB_OSS_SECRET"]
16
+ bucket = ENV["CRAWLAB_OSS_BUCKET"]
17
+ if endpoint == nil || endpoint == ""
18
+ return
19
+ end
20
+ if access_key_id == nil || access_key_id == ""
21
+ return
22
+ end
23
+ if access_key_secret == nil || access_key_secret == ""
24
+ return
25
+ end
26
+
27
+ if bucket == nil || bucket == ""
28
+ return
29
+ end
30
+ @oss_client = Aliyun::OSS::Client.new(
31
+ :endpoint => endpoint,
32
+ :access_key_id => access_key_id,
33
+ :access_key_secret => access_key_secret)
34
+ end
35
+
36
+ def get_bucket
37
+ bucket = ENV["CRAWLAB_OSS_BUCKET"]
38
+ if bucket == nil || bucket == ""
39
+ return
40
+ end
41
+ @bucket = @oss_client.get_bucket(bucket)
42
+ end
43
+
44
+ def send(oss_path,file_path)
45
+ if bucket == nil || @oss_client == nil
46
+ return "bucket is nil"
47
+ end
48
+ bucket.put_object(oss_path, :file => file_path)
49
+
50
+ bucket_url = bucket.object_url(oss_path)
51
+ return bucket_url
52
+ end
53
+ end
@@ -1,3 +1,3 @@
1
1
  module CrawlabRubySdk
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -9,21 +9,21 @@ def traverse_dir(file_path)
9
9
  end
10
10
  end
11
11
 
12
- PWD = File.expand_path("..", __FILE__)
12
+ dir = File.expand_path("..", __FILE__)
13
13
 
14
- # puts PWD
14
+ # puts dir
15
15
 
16
- traverse_dir(PWD+'/entity/stream_message_code_pb.rb')
17
- traverse_dir(PWD+'/entity/result_pb.rb')
18
- traverse_dir(PWD+'/entity/stream_message_pb.rb')
19
- traverse_dir(PWD+'/entity/stream_message_data_task_pb.rb')
20
- traverse_dir(PWD+'/client')
16
+ traverse_dir(dir+'/entity/stream_message_code_pb.rb')
17
+ traverse_dir(dir+'/entity/result_pb.rb')
18
+ traverse_dir(dir+'/entity/stream_message_pb.rb')
19
+ traverse_dir(dir+'/entity/stream_message_data_task_pb.rb')
20
+ traverse_dir(dir+'/client')
21
21
 
22
22
  module CrawlabRubySdk
23
23
  class Error < StandardError; end
24
24
  # Your code goes here...
25
25
 
26
-
26
+
27
27
  def self.save_item(item={})
28
28
  address = ENV["CRAWLAB_GRPC_ADDRESS"]
29
29
  if address==nil || address == ""
@@ -39,22 +39,72 @@ module CrawlabRubySdk
39
39
 
40
40
  sub_client = client.subscribe
41
41
 
42
- task_id = ENV["CRAWLAB_TASK_ID"]
42
+ save(sub_client,[item])
43
+ end
44
+
45
+ def self.save_items(items=[])
46
+ address = ENV["CRAWLAB_GRPC_ADDRESS"]
47
+ if address==nil || address == ""
48
+ address = "localhost:9666"
49
+ end
50
+
51
+ auth = ENV["CRAWLAB_GRPC_AUTH_KEY"]
52
+ if auth==nil || auth == ""
53
+ auth = "Crawlab2021!"
54
+ end
55
+
56
+ client = TaskServiceClient.new(address,auth)
57
+
58
+ sub_client = client.subscribe
59
+
60
+ save(sub_client,items)
61
+ end
62
+
63
+ def self.save(sub_client,items = [])
64
+ results = []
65
+
66
+ items.each do |item|
67
+ results << item
68
+
69
+ if results.size >= 50
70
+ _save(sub_client,results)
71
+ end
72
+
73
+ end
74
+
75
+ if results.size > 0
76
+ _save(sub_client,results)
77
+ end
78
+ end
79
+
80
+ def self._save(sub_client,items=[])
81
+ records = []
82
+ task_id = get_task_id
43
83
  if task_id == nil || task_id == ""
44
- task_id = "6486e256fa1cb07a47c09adf"
84
+ return
45
85
  end
46
- item = {"hello": "world","_tid":task_id}
47
- item = Grpc::Result.new({"_tid":task_id,"name":"lala","age":"12"})
48
86
 
49
- data = Grpc::StreamMessageDataTask.new()
50
- # puts item
87
+ items.each do |item|
88
+ item["_tid"] = task_id
89
+ records << item
90
+ end
51
91
 
52
- data.task_id = task_id
53
- data.data.push(item)
92
+ data = {task_id: task_id,data:records}.to_json
93
+
94
+ msg = Grpc::StreamMessage.new(code:3,data:data)
95
+
96
+ sub_client.Send([msg])
97
+ end
98
+
99
+ def self.get_task_id
100
+ task_id = ENV["CRAWLAB_TASK_ID"]
101
+ if task_id == nil || task_id == ""
102
+ task_id = "6486e256fa1cb07a47c09adf"
103
+ end
104
+ return task_id
105
+ end
54
106
 
55
- puts data
56
- msg = Grpc::StreamMessage.new(code:3,data:data.to_json)
57
- puts msg
58
- sub_client.Send([msg])
107
+ def self.save_file_to_oss(oss_path,file_path)
108
+ OssServerClient.new.send(oss_path,file_path)
59
109
  end
60
110
  end
@@ -0,0 +1,17 @@
1
+
2
+ require 'crawlab_ruby_sdk'
3
+ def main
4
+ CrawlabRubySdk.save_item({name: "haha",age:12})
5
+
6
+ CrawlabRubySdk.save_items([{name: "haha",age:12},{name:"456",age:34}])
7
+ ENV.each do |k,v|
8
+ puts "#{k}=#{v}"
9
+ end
10
+
11
+ oss_path = "thinkthank_files/files/1123123123.pdf"
12
+ file_path = "/home/min/Downloads/RAND_RRA1218-2.pdf"
13
+ bucket_url = CrawlabRubySdk.save_file_to_oss(oss_path,file_path)
14
+ puts bucket_url
15
+ end
16
+
17
+ main
metadata CHANGED
@@ -1,16 +1,72 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crawlab_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - min
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-14 00:00:00.000000000 Z
12
- dependencies: []
13
- description: This guy is very lazy.
11
+ date: 2023-06-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: grpc
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.55.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.55.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: google-protobuf
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.23.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.23.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: json
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.6.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.6.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: aliyun-sdk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.8.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.8.0
69
+ description: Write a longer description or delete this line.
14
70
  email:
15
71
  - lijinmin3903@126.com
16
72
  executables: []
@@ -24,6 +80,7 @@ files:
24
80
  - bin/console
25
81
  - bin/setup
26
82
  - crawlab_ruby_sdk.gemspec
83
+ - lib/client/oss_server_client.rb
27
84
  - lib/client/task_service_client.rb
28
85
  - lib/client/task_service_subscribe_client.rb
29
86
  - lib/crawlab_ruby_sdk.rb
@@ -39,6 +96,7 @@ files:
39
96
  - lib/entity/stream_message_pb.rb
40
97
  - lib/models/node_pb.rb
41
98
  - lib/models/task_pb.rb
99
+ - test_grpc_client.rb
42
100
  homepage: https://github.com/rich-bro/crawlab_ruby_sdk
43
101
  licenses: []
44
102
  metadata:
@@ -46,7 +104,7 @@ metadata:
46
104
  homepage_uri: https://github.com/rich-bro/crawlab_ruby_sdk
47
105
  source_code_uri: https://github.com/rich-bro/crawlab_ruby_sdk
48
106
  changelog_uri: https://github.com/rich-bro/crawlab_ruby_sdk
49
- post_install_message:
107
+ post_install_message:
50
108
  rdoc_options: []
51
109
  require_paths:
52
110
  - lib
@@ -62,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
120
  version: '0'
63
121
  requirements: []
64
122
  rubygems_version: 3.1.4
65
- signing_key:
123
+ signing_key:
66
124
  specification_version: 4
67
- summary: This guy is very lazy.
125
+ summary: Write a short summary, because RubyGems requires one.
68
126
  test_files: []