cloud_door 0.0.2 → 0.0.3
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/README.md +1 -0
- data/bin/dropbox +2 -1
- data/bin/gdrive +2 -1
- data/bin/onedrive +2 -1
- data/cloud_door.gemspec +1 -2
- data/cloud_door_config.yml +10 -10
- data/lib/cloud_door.rb +30 -14
- data/lib/cloud_door/account.rb +2 -1
- data/lib/cloud_door/cloud_storage.rb +51 -5
- data/lib/cloud_door/config.rb +2 -1
- data/lib/cloud_door/console.rb +2 -1
- data/lib/cloud_door/dropbox.rb +64 -51
- data/lib/cloud_door/google_drive.rb +42 -40
- data/lib/cloud_door/google_drive_bridge.rb +4 -3
- data/lib/cloud_door/onedrive.rb +29 -26
- data/lib/cloud_door/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0af22855dd9c5f2038b69893689b5a3ef01ea215
|
4
|
+
data.tar.gz: 909ab98533ae18ff07a574f15b47b04c903aabc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a8b5a67c5d36180fc10f428d882eaa1f5283fdf904529a1be0645fab66598d6122591d87d3e7d9a7c6844f3e4df06f10ed1788de8d677c9d560e3af5c65c7be
|
7
|
+
data.tar.gz: a537f6179b73ac6682070a34f11d43df80583401075a73b81caf154a17c9364d043c0d06d8ff0140bb1491f27c7563d8b4dbbc265fc6e3bfef43cb8e61e2e501
|
data/README.md
CHANGED
@@ -134,6 +134,7 @@ C.if session_flag is "1"(using session ID)
|
|
134
134
|
### methods
|
135
135
|
You can use these methods as instance method.
|
136
136
|
these methods can operate current directory only.
|
137
|
+
|
137
138
|
- login(login_account, login_password)
|
138
139
|
- login cloud storage.
|
139
140
|
- return the session ID after logging in if "session_flag" is "1".
|
data/bin/dropbox
CHANGED
data/bin/gdrive
CHANGED
data/bin/onedrive
CHANGED
data/cloud_door.gemspec
CHANGED
@@ -10,8 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ['hibiheion@gmail.com']
|
11
11
|
spec.summary = %q{This gem can access different cloud storage through same interface.}
|
12
12
|
spec.description = %q{This gem can access different cloud storage through same interface.
|
13
|
-
This gem supports
|
14
|
-
It will be supported also google drive in the future.}
|
13
|
+
This gem supports Dropbox, GoogleDrive and OneDrive.}
|
15
14
|
spec.homepage = 'https://github.com/KotaroHibi/cloud_door'
|
16
15
|
spec.license = 'MIT'
|
17
16
|
|
data/cloud_door_config.yml
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
---
|
2
2
|
global:
|
3
3
|
data_path: './data/'
|
4
|
-
session_flg:
|
4
|
+
session_flg: 1
|
5
5
|
onedrive:
|
6
|
-
client_id:
|
7
|
-
client_secret:
|
8
|
-
redirect_url:
|
6
|
+
client_id: 000000004011CC48
|
7
|
+
client_secret: ueGDCPD2ZkHI616vHMz8712qJsYrPHQd
|
8
|
+
redirect_url: https://login.live.com/oauth20_desktop.srf
|
9
9
|
dropbox:
|
10
|
-
client_id:
|
11
|
-
client_secret:
|
12
|
-
redirect_url:
|
10
|
+
client_id: faa7vvvwibz8bc4
|
11
|
+
client_secret: a903je5ocilukkz
|
12
|
+
redirect_url: http://localhost
|
13
13
|
googledrive:
|
14
|
-
client_id:
|
15
|
-
client_secret:
|
16
|
-
redirect_url:
|
14
|
+
client_id: 886645609675-e4b0hpfbtvbktgme2l2ujdh96akivqpc.apps.googleusercontent.com
|
15
|
+
client_secret: 0nZEvgkHPpOZTU7dDf4LeBwP
|
16
|
+
redirect_url: urn:ietf:wg:oauth:2.0:oob
|
17
17
|
|
data/lib/cloud_door.rb
CHANGED
@@ -1,17 +1,33 @@
|
|
1
|
-
require 'cloud_door/account'
|
2
|
-
require 'cloud_door/config'
|
3
|
-
require 'cloud_door/cloud_storage'
|
4
|
-
require 'cloud_door/cloud_yaml'
|
5
|
-
require 'cloud_door/console'
|
6
|
-
require 'cloud_door/dropbox'
|
7
|
-
require 'cloud_door/
|
8
|
-
require 'cloud_door/
|
9
|
-
require 'cloud_door/
|
10
|
-
require 'cloud_door/
|
11
|
-
require 'cloud_door/
|
12
|
-
require 'cloud_door/
|
13
|
-
require 'cloud_door/
|
14
|
-
require 'cloud_door/
|
1
|
+
# require 'cloud_door/account'
|
2
|
+
# require 'cloud_door/config'
|
3
|
+
# require 'cloud_door/cloud_storage'
|
4
|
+
# require 'cloud_door/cloud_yaml'
|
5
|
+
# require 'cloud_door/console'
|
6
|
+
# require 'cloud_door/dropbox'
|
7
|
+
# require 'cloud_door/dropbox_bridge'
|
8
|
+
# require 'cloud_door/exceptions'
|
9
|
+
# require 'cloud_door/file_list'
|
10
|
+
# require 'cloud_door/google_drive'
|
11
|
+
# require 'cloud_door/google_drive_bridge'
|
12
|
+
# require 'cloud_door/onedrive'
|
13
|
+
# require 'cloud_door/onedrive_api'
|
14
|
+
# require 'cloud_door/token'
|
15
|
+
# require 'cloud_door/version'
|
16
|
+
require './lib/cloud_door/account'
|
17
|
+
require './lib/cloud_door/config'
|
18
|
+
require './lib/cloud_door/cloud_storage'
|
19
|
+
require './lib/cloud_door/cloud_yaml'
|
20
|
+
require './lib/cloud_door/console'
|
21
|
+
require './lib/cloud_door/dropbox'
|
22
|
+
require './lib/cloud_door/dropbox_bridge'
|
23
|
+
require './lib/cloud_door/exceptions'
|
24
|
+
require './lib/cloud_door/file_list'
|
25
|
+
require './lib/cloud_door/google_drive'
|
26
|
+
require './lib/cloud_door/google_drive_bridge'
|
27
|
+
require './lib/cloud_door/onedrive'
|
28
|
+
require './lib/cloud_door/onedrive_api'
|
29
|
+
require './lib/cloud_door/token'
|
30
|
+
require './lib/cloud_door/version'
|
15
31
|
|
16
32
|
module CloudDoor
|
17
33
|
class CloudDoor
|
data/lib/cloud_door/account.rb
CHANGED
@@ -5,11 +5,16 @@ require 'zip'
|
|
5
5
|
require 'watir-webdriver'
|
6
6
|
require 'cgi'
|
7
7
|
require 'cgi/session'
|
8
|
-
require 'cloud_door/account'
|
9
|
-
require 'cloud_door/config'
|
10
|
-
require 'cloud_door/exceptions'
|
11
|
-
require 'cloud_door/file_list'
|
12
|
-
require 'cloud_door/token'
|
8
|
+
# require 'cloud_door/account'
|
9
|
+
# require 'cloud_door/config'
|
10
|
+
# require 'cloud_door/exceptions'
|
11
|
+
# require 'cloud_door/file_list'
|
12
|
+
# require 'cloud_door/token'
|
13
|
+
require './lib/cloud_door/account'
|
14
|
+
require './lib/cloud_door/config'
|
15
|
+
require './lib/cloud_door/exceptions'
|
16
|
+
require './lib/cloud_door/file_list'
|
17
|
+
require './lib/cloud_door/token'
|
13
18
|
|
14
19
|
module CloudDoor
|
15
20
|
class CloudStorage
|
@@ -287,6 +292,47 @@ module CloudDoor
|
|
287
292
|
zip_file_name
|
288
293
|
end
|
289
294
|
|
295
|
+
def request_user
|
296
|
+
info = @client.request_user()
|
297
|
+
raise NoDataException if info.nil? || info.empty?
|
298
|
+
info
|
299
|
+
end
|
300
|
+
|
301
|
+
def request_dir
|
302
|
+
file_id = @parent_id || @file_id || @root_id
|
303
|
+
@client.request_dir(file_id)
|
304
|
+
end
|
305
|
+
|
306
|
+
def request_file
|
307
|
+
@client.request_file(@file_id)
|
308
|
+
end
|
309
|
+
|
310
|
+
def request_download
|
311
|
+
contents = @client.request_download(@file_id)
|
312
|
+
if contents
|
313
|
+
open("#{@file_name}", 'wb') { |file| file << contens }
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
def request_upload(file_path)
|
318
|
+
response = @client.request_upload(file_path, @parent_id)
|
319
|
+
raise UploadFailedException if response.nil? || response.empty?
|
320
|
+
response
|
321
|
+
end
|
322
|
+
|
323
|
+
def request_delete
|
324
|
+
@client.request_delete(@file_id)
|
325
|
+
true
|
326
|
+
rescue => e
|
327
|
+
false
|
328
|
+
end
|
329
|
+
|
330
|
+
def request_mkdir
|
331
|
+
response = @client.request_mkdir(@mkdir_name, @parent_id)
|
332
|
+
# raise MkdirFailedException if response.nil? || response.empty?
|
333
|
+
# response
|
334
|
+
end
|
335
|
+
|
290
336
|
def handle_exception(e)
|
291
337
|
raise
|
292
338
|
end
|
data/lib/cloud_door/config.rb
CHANGED
data/lib/cloud_door/console.rb
CHANGED
data/lib/cloud_door/dropbox.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'dropbox_sdk'
|
2
|
-
require 'cloud_door/cloud_storage'
|
2
|
+
# require 'cloud_door/cloud_storage'
|
3
|
+
# require 'cloud_door/dropbox_bridge'
|
4
|
+
require './lib/cloud_door/cloud_storage'
|
5
|
+
require './lib/cloud_door/dropbox_bridge'
|
3
6
|
|
4
7
|
module CloudDoor
|
5
8
|
class Dropbox < CloudStorage
|
@@ -36,7 +39,8 @@ module CloudDoor
|
|
36
39
|
def load_token
|
37
40
|
token_file = File.basename(@token.token_file)
|
38
41
|
@token = Token.load_token(token_file, @config.data_path, @session_id)
|
39
|
-
@client =
|
42
|
+
@client = DropboxBridge.new(@token.access_token)
|
43
|
+
# @client = DropboxClient.new(@token.access_token)
|
40
44
|
@token
|
41
45
|
end
|
42
46
|
|
@@ -48,7 +52,8 @@ module CloudDoor
|
|
48
52
|
access_token, user_id = flow.finish(code)
|
49
53
|
raise NoDataException if access_token.nil?
|
50
54
|
@session_id = reset_token({'access_token' => access_token})
|
51
|
-
@client =
|
55
|
+
@client = DropboxBridge.new(access_token)
|
56
|
+
# @client = DropboxClient.new(access_token)
|
52
57
|
items = pull_files
|
53
58
|
@file_list.delete_file
|
54
59
|
@file_list.write_file_list(items)
|
@@ -63,54 +68,62 @@ module CloudDoor
|
|
63
68
|
|
64
69
|
private
|
65
70
|
|
66
|
-
def request_user
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
|
-
def
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
71
|
+
# def request_user
|
72
|
+
# info = @client.request_user()
|
73
|
+
# # info = @client.account_info()
|
74
|
+
# raise NoDataException if info.nil? || info.empty?
|
75
|
+
# info
|
76
|
+
# end
|
77
|
+
|
78
|
+
# def request_dir
|
79
|
+
# file_id = @parent_id || @file_id || @root_id
|
80
|
+
# @client.request_dir(file_id)
|
81
|
+
# # file_id = @parent_id || @file_id || ROOT_ID
|
82
|
+
# # @client.metadata(file_id)
|
83
|
+
# end
|
84
|
+
|
85
|
+
# def request_file
|
86
|
+
# @client.request_file(@file_id)
|
87
|
+
# # @client.metadata(@file_id)
|
88
|
+
# end
|
89
|
+
|
90
|
+
# def request_download
|
91
|
+
# contents = @client.request_download(@file_id)
|
92
|
+
# # contents, metadata = @client.get_file_and_metadata(@file_id)
|
93
|
+
# open(@file_name, 'w') {|f| f.puts contents }
|
94
|
+
# metadata
|
95
|
+
# end
|
96
|
+
|
97
|
+
# def request_upload(file_path)
|
98
|
+
# response = @client.request_upload(file_path, @parent_id)
|
99
|
+
# # if @parent_id == ROOT_ID
|
100
|
+
# # to_path = @parent_id + file_path
|
101
|
+
# # else
|
102
|
+
# # to_path = "#{@parent_id}/#{file_path}"
|
103
|
+
# # end
|
104
|
+
# # response = @client.put_file(to_path, open(file_path))
|
105
|
+
# raise UploadFailedException if response.nil? || response.empty?
|
106
|
+
# response
|
107
|
+
# end
|
108
|
+
|
109
|
+
# def request_delete
|
110
|
+
# response = @client.request_delete(@file_id)
|
111
|
+
# # response = @client.file_delete(@file_id)
|
112
|
+
# raise DeleteFailedException if response.nil? || response.empty?
|
113
|
+
# response
|
114
|
+
# end
|
115
|
+
|
116
|
+
# def request_mkdir
|
117
|
+
# response = @client.request_mkdir(@mkdir_name, @parent_id)
|
118
|
+
# # if @parent_id == ROOT_ID
|
119
|
+
# # path = @parent_id + @mkdir_name
|
120
|
+
# # else
|
121
|
+
# # path = "#{@parent_id}/#{@mkdir_name}"
|
122
|
+
# # end
|
123
|
+
# # response = @client.file_create_folder(path)
|
124
|
+
# raise MkdirFailedException if response.nil? || response.empty?
|
125
|
+
# response
|
126
|
+
# end
|
114
127
|
|
115
128
|
def pull_files
|
116
129
|
dir = pick_cloud_info('request_dir', 'contents')
|
@@ -1,5 +1,7 @@
|
|
1
|
-
require 'cloud_door/cloud_storage'
|
2
|
-
require 'cloud_door/google_drive_bridge'
|
1
|
+
# require 'cloud_door/cloud_storage'
|
2
|
+
# require 'cloud_door/google_drive_bridge'
|
3
|
+
require './lib/cloud_door/cloud_storage'
|
4
|
+
require './lib/cloud_door/google_drive_bridge'
|
3
5
|
|
4
6
|
module CloudDoor
|
5
7
|
class GoogleDrive < CloudStorage
|
@@ -77,44 +79,40 @@ module CloudDoor
|
|
77
79
|
|
78
80
|
private
|
79
81
|
|
80
|
-
def request_user
|
81
|
-
|
82
|
-
end
|
83
|
-
|
84
|
-
def
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
end
|
92
|
-
|
93
|
-
def
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
|
-
def
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
end
|
114
|
-
|
115
|
-
def request_mkdir
|
116
|
-
@client.request_mkdir(@mkdir_name, @parent_id)
|
117
|
-
end
|
82
|
+
# def request_user
|
83
|
+
# @client.request_user
|
84
|
+
# end
|
85
|
+
|
86
|
+
# def request_dir
|
87
|
+
# file_id = @parent_id || @file_id || @root_id
|
88
|
+
# @client.request_dir(file_id)
|
89
|
+
# end
|
90
|
+
|
91
|
+
# def request_file
|
92
|
+
# @client.request_file(@file_id)
|
93
|
+
# end
|
94
|
+
|
95
|
+
# def request_download
|
96
|
+
# body = @client.request_download(@file_id)
|
97
|
+
# if body
|
98
|
+
# open(@file_name, 'w') {|f| f.puts body }
|
99
|
+
# end
|
100
|
+
# end
|
101
|
+
|
102
|
+
# def request_upload(file_path)
|
103
|
+
# @client.request_upload(file_path, @parent_id)
|
104
|
+
# end
|
105
|
+
|
106
|
+
# def request_delete
|
107
|
+
# @client.request_delete(@file_id)
|
108
|
+
# true
|
109
|
+
# rescue => e
|
110
|
+
# false
|
111
|
+
# end
|
112
|
+
|
113
|
+
# def request_mkdir
|
114
|
+
# @client.request_mkdir(@mkdir_name, @parent_id)
|
115
|
+
# end
|
118
116
|
|
119
117
|
def pull_files
|
120
118
|
dir = request_dir
|
@@ -129,6 +127,10 @@ module CloudDoor
|
|
129
127
|
items
|
130
128
|
end
|
131
129
|
|
130
|
+
def request_root_id
|
131
|
+
@client.request_root_id
|
132
|
+
end
|
133
|
+
|
132
134
|
def format_property(info)
|
133
135
|
items = {}
|
134
136
|
items['name'] = info['title']
|
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'google/api_client'
|
2
2
|
require 'yaml'
|
3
3
|
require 'mimetype_fu'
|
4
|
-
require 'cloud_door/cloud_storage'
|
4
|
+
# require 'cloud_door/cloud_storage'
|
5
|
+
# require 'cloud_door/dropbox'
|
6
|
+
require './lib/cloud_door/cloud_storage'
|
7
|
+
require './lib/cloud_door/dropbox'
|
5
8
|
|
6
9
|
module CloudDoor
|
7
10
|
class GoogleDriveBridge
|
@@ -131,7 +134,5 @@ module CloudDoor
|
|
131
134
|
raise HttpConnectionException
|
132
135
|
end
|
133
136
|
end
|
134
|
-
|
135
137
|
end
|
136
|
-
|
137
138
|
end
|
data/lib/cloud_door/onedrive.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
require 'cloud_door/cloud_storage'
|
2
|
-
require 'cloud_door/onedrive_api'
|
1
|
+
# require 'cloud_door/cloud_storage'
|
2
|
+
# require 'cloud_door/onedrive_api'
|
3
|
+
require './lib/cloud_door/cloud_storage'
|
4
|
+
require './lib/cloud_door/onedrive_api'
|
3
5
|
|
4
6
|
module CloudDoor
|
5
7
|
class OneDrive < CloudStorage
|
@@ -95,36 +97,37 @@ module CloudDoor
|
|
95
97
|
)
|
96
98
|
end
|
97
99
|
|
98
|
-
def request_user
|
99
|
-
|
100
|
-
end
|
100
|
+
# def request_user
|
101
|
+
# @client.request_user
|
102
|
+
# end
|
101
103
|
|
102
|
-
def request_dir
|
103
|
-
|
104
|
-
|
105
|
-
|
104
|
+
# def request_dir
|
105
|
+
# file_id = @parent_id || @file_id || @root_id
|
106
|
+
# # file_id = @parent_id || @file_id || ROOT_ID
|
107
|
+
# @client.request_dir(file_id)
|
108
|
+
# end
|
106
109
|
|
107
|
-
def request_file
|
108
|
-
|
109
|
-
end
|
110
|
+
# def request_file
|
111
|
+
# @client.request_file(@file_id)
|
112
|
+
# end
|
110
113
|
|
111
|
-
def request_download
|
112
|
-
|
113
|
-
|
114
|
-
end
|
114
|
+
# def request_download
|
115
|
+
# contens = @client.request_download(@file_id)
|
116
|
+
# open("#{@file_name}", 'wb') { |file| file << contens }
|
117
|
+
# end
|
115
118
|
|
116
|
-
def request_upload(file_path)
|
117
|
-
|
118
|
-
end
|
119
|
+
# def request_upload(file_path)
|
120
|
+
# @client.request_upload(file_path, @parent_id)
|
121
|
+
# end
|
119
122
|
|
120
|
-
def request_delete
|
121
|
-
|
122
|
-
end
|
123
|
+
# def request_delete
|
124
|
+
# @client.request_delete(@file_id)
|
125
|
+
# end
|
123
126
|
|
124
|
-
def request_mkdir
|
125
|
-
|
126
|
-
|
127
|
-
end
|
127
|
+
# def request_mkdir
|
128
|
+
# parent_id = @parent_id || ROOT_ID
|
129
|
+
# @client.request_mkdir(@mkdir_name, parent_id)
|
130
|
+
# end
|
128
131
|
|
129
132
|
def pull_files
|
130
133
|
dir = pick_cloud_info('request_dir', 'data')
|
data/lib/cloud_door/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloud_door
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kotaro Hibi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -266,8 +266,7 @@ dependencies:
|
|
266
266
|
version: 2.11.2
|
267
267
|
description: |-
|
268
268
|
This gem can access different cloud storage through same interface.
|
269
|
-
This gem supports
|
270
|
-
It will be supported also google drive in the future.
|
269
|
+
This gem supports Dropbox, GoogleDrive and OneDrive.
|
271
270
|
email:
|
272
271
|
- hibiheion@gmail.com
|
273
272
|
executables:
|